Bill Wendling
f85b54db6c
If the function being inlined has a higher stack protection level than the
...
inlining function, then increase the stack protection level on the inlining
function.
llvm-svn: 59757
2008-11-21 00:06:32 +00:00
Bill Wendling
d0bd6f6e73
Introduce two new "add" intrinsics. These return the sum plus a bit indicating
...
that an overflow/carry occured. These are converted into ISD::[SU]ADDO nodes,
which are lowered in a target-independent way into something sane. Eventually,
each target can implement their own method of checking the overflow/carry flags.
llvm-svn: 59756
2008-11-21 00:05:31 +00:00
Oscar Fuentes
cbfb4cf881
CMake: More documentation.
...
llvm-svn: 59755
2008-11-20 23:35:09 +00:00
Dan Gohman
b8f4f58938
Delete redundant inline keywords.
...
llvm-svn: 59754
2008-11-20 22:10:21 +00:00
Dan Gohman
0ba3f17e9f
Doxygenate comments.
...
llvm-svn: 59753
2008-11-20 22:09:52 +00:00
Oscar Fuentes
378c8a6a81
CMake: Some documentation. Work in progress.
...
llvm-svn: 59752
2008-11-20 22:05:48 +00:00
Dan Gohman
fd06b62f9c
Treat mid-block labels the same as terminators when building the
...
MachineInstr scheduling DAG, meaning they implicitly depend on all
preceding defs. This fixes Benchmarks/Shootout-C++/except and
Regression/C++/EH/simple_rethrow in
-relocation-model=pic -disable-post-RA-scheduler=false
mode.
llvm-svn: 59747
2008-11-20 19:58:35 +00:00
Dan Gohman
3b3afa49f8
Add another machine-code printing pass when post-pass scheduling is run.
...
llvm-svn: 59746
2008-11-20 19:54:21 +00:00
Devang Patel
0c43c5a17f
Don't forget arguments!
...
llvm-svn: 59745
2008-11-20 19:50:17 +00:00
Dan Gohman
7e92e53e25
Test -pre-RA-sched=fast too, for completeness.
...
llvm-svn: 59741
2008-11-20 19:26:04 +00:00
Oscar Fuentes
3c4de0ae87
CMake: Option for building with -fPIC.
...
llvm-svn: 59739
2008-11-20 19:13:51 +00:00
Scott Michel
4026c8f44a
CellSPU:
...
(a) Remove moved file (SPUAsmPrinter.cpp) to make svn happy.
(b) Remove truncated stores that will never be used.
(c) Add initial support for __muldi3 as a libcall.
llvm-svn: 59734
2008-11-20 16:36:33 +00:00
Duncan Sands
84e2128d5e
Add some documentation.
...
llvm-svn: 59727
2008-11-20 10:34:43 +00:00
Mon P Wang
76b86c996e
Allow XMM2 and XMM3 to be used for non ABI compliant code.
...
llvm-svn: 59720
2008-11-20 07:48:19 +00:00
Bill Wendling
939e13da58
80-column violation.
...
llvm-svn: 59718
2008-11-20 07:24:30 +00:00
Bill Wendling
cfc163d249
Reformatting. No functionality change.
...
llvm-svn: 59717
2008-11-20 07:23:34 +00:00
Chris Lattner
527a103e8e
add an operator= to assign to smallstring.
...
llvm-svn: 59715
2008-11-20 07:09:17 +00:00
Scott Michel
c4efcfdcd6
CellSPU: Custom lower truncating stores of i8 to i1 (should not have been
...
promote), fix signed conversion of indexed offsets.
llvm-svn: 59707
2008-11-20 05:01:09 +00:00
Nick Lewycky
f95bff882d
undef beats zero. Fix this missed optimization opportunity. Patch by Matt Elder!
...
llvm-svn: 59705
2008-11-20 04:36:13 +00:00
Scott Michel
0877d8890e
Revert accidental last patch
...
llvm-svn: 59704
2008-11-20 04:28:08 +00:00
Scott Michel
d811d41fe7
CellSPU: Adjust spacing/tabulation
...
llvm-svn: 59703
2008-11-20 04:26:21 +00:00
Dan Gohman
d5d4c72217
Remove a remnant of list-burr's fast mode.
...
llvm-svn: 59702
2008-11-20 03:32:45 +00:00
Dan Gohman
dd45a57684
Factor out the SethiUllman numbering logic from the list-burr and
...
list-tdrr schedulers into a common base class.
llvm-svn: 59701
2008-11-20 03:30:37 +00:00
Dan Gohman
63cc6f6c63
Remove the "fast" form of the list-burr scheduler, and use the
...
dedicated "fast" scheduler in -fast mode instead, which is
faster. This speeds up llc -fast by a few percent on some
testcases -- the speedup only happens for code not handled by
fast-isel.
llvm-svn: 59700
2008-11-20 03:11:19 +00:00
Oscar Fuentes
049ffc2c59
CMake: when building shared libraries, use -fPIC for compiling
...
partially linked objects.
llvm-svn: 59699
2008-11-20 03:10:17 +00:00
Dan Gohman
b8e32efb30
Facter AddPseudoTwoAddrDeps and associated infrasructure out of
...
the list-burr scheduler so that it can be used by the list-tdrr
scheduler too.
llvm-svn: 59698
2008-11-20 02:45:51 +00:00
Evan Cheng
2805dcc9a0
- Register scavenger should use MachineRegisterInfo and internal map to find the first use of a register after a given machine instruction.
...
- When scavenging a register, in addition to the spill, insert a restore before the first use.
- Abort if client is looking to scavenge a register even when a previously scavenged register is still live.
llvm-svn: 59697
2008-11-20 02:32:35 +00:00
Evan Cheng
bc91bb7658
Fix a thinko. MO is getOperand(i-1) so we don't have to adjust e.
...
llvm-svn: 59696
2008-11-20 02:25:51 +00:00
Dan Gohman
6d0d98d450
Add #include <climits> to get the definition of INT_MAX.
...
llvm-svn: 59692
2008-11-20 01:41:34 +00:00
Dan Gohman
77e3f07d4b
Factor out the code for verifying the work of the scheduler,
...
extend it a bit, and make use of it in all schedulers, to
ensure consistent checking.
llvm-svn: 59689
2008-11-20 01:26:25 +00:00
Devang Patel
20dec363b1
Do not forget llvm.dbg.declare's first argument while removing debugging information.
...
llvm-svn: 59688
2008-11-20 01:20:42 +00:00
Bill Wendling
023e8ff42c
Copy the tblgen utility.
...
llvm-svn: 59681
2008-11-20 00:11:57 +00:00
Dan Gohman
d8b57556ce
Simplify this code a little. In the fast scheduler, CreateNewSUnit
...
and CreateClone don't add any extra value.
llvm-svn: 59679
2008-11-19 23:39:02 +00:00
Evan Cheng
c8ecb037a2
Eliminate a compile time warning.
...
llvm-svn: 59678
2008-11-19 23:21:33 +00:00
Evan Cheng
b434100baa
Eliminate a compile time warning.
...
llvm-svn: 59677
2008-11-19 23:21:11 +00:00
Dan Gohman
f4b2751ee6
Experimental post-pass scheduling support. Post-pass scheduling
...
is currently off by default, and can be enabled with
-disable-post-RA-scheduler=false.
This doesn't have a significant impact on most code yet because it doesn't
yet do anything to address anti-dependencies and it doesn't attempt to
disambiguate memory references. Also, several popular targets
don't have pipeline descriptions yet.
The majority of the changes here are splitting the SelectionDAG-specific
code out of ScheduleDAG, so that ScheduleDAG can be moved to
libLLVMCodeGen.a. The interface between ScheduleDAG-using code and
the rest of the scheduling code is somewhat rough and will evolve.
llvm-svn: 59676
2008-11-19 23:18:57 +00:00
Dan Gohman
32a8ee5c90
Move the code for printing a graph node label for an SUnit into
...
a virtual method of SelectionDAG.
llvm-svn: 59667
2008-11-19 22:09:45 +00:00
Dan Gohman
b5ce3ebed1
Convert SUnit's dump method into a print method and implement
...
dump in terms of it.
llvm-svn: 59665
2008-11-19 21:32:03 +00:00
Oscar Fuentes
212b29b9d9
CMake: Removed source file.
...
llvm-svn: 59662
2008-11-19 19:32:19 +00:00
Devang Patel
e5a07d989e
Do not use separate utility to walk all instructions and remove dead dbg intrinsics. Let instcombiner do this job.
...
llvm-svn: 59659
2008-11-19 19:01:37 +00:00
Devang Patel
79a342d7d3
Let instcombiner remove redundant dbg intrinsics.
...
llvm-svn: 59658
2008-11-19 18:59:41 +00:00
Devang Patel
cd2e68c069
If there are two consecutive llvm.dbg.stoppoint calls then
...
it is likely that the optimizer deleted code in between these
two intrinsics. Keep only the last llvm.dbg.stoppoint in this case.
llvm-svn: 59657
2008-11-19 18:56:50 +00:00
Oscar Fuentes
c4345795b0
CMake: Removed source file from lib/Target/PIC16/CMakeLists.txt.
...
llvm-svn: 59655
2008-11-19 18:42:25 +00:00
Scott Michel
583eadfb46
CellSPU: Do not custom lower i1 stores, rely on type legalization to do the
...
right thing and promote the store to i8.
llvm-svn: 59648
2008-11-19 17:45:08 +00:00
Stuart Hastings
545f47a2cb
<rdar://problem/6351057>
...
Discourage (allocate last) use of x86_64 R12 and R13 due to their
longer instruction encodings.
llvm-svn: 59644
2008-11-19 17:19:35 +00:00
Andrew Lenharth
54748faa8a
ignore the -m elf_i386 directive used in the linux kernel
...
llvm-svn: 59642
2008-11-19 17:00:08 +00:00
Dan Gohman
60e2650b09
Revert r59640. It broke this test for builds that aren't
...
configured with llvm-gcc.
llvm-svn: 59641
2008-11-19 16:24:37 +00:00
Dan Gohman
1b9557279c
Use %llvmgcc -xassembler instead of invoking as directly. This avoids
...
problems for example when LLVM is built with --with-extra-options=-m64
and as defaults to x86-32 mode.
llvm-svn: 59640
2008-11-19 16:02:14 +00:00
Scott Michel
5ca4b5b653
Temporary check-in for Duncan to demonstrate CellSPU store problem.
...
llvm-svn: 59637
2008-11-19 15:24:16 +00:00
Argyrios Kyrtzidis
c7a898544b
Fix compilation error on MSVC.
...
llvm-svn: 59629
2008-11-19 12:56:21 +00:00