Bill Wendling
6d749434a5
Add UADDO and SADDO nodes. These will be used for determining an overflow
...
condition in an addition operation.
llvm-svn: 59760
2008-11-21 00:11:16 +00:00
Dan Gohman
66e692dd8f
Change these schedulers to not emit no-ops. It turns out that
...
the RR scheduler actually does look at latency values, but it
doesn't use a hazard recognizer so it has no way to know when
a no-op is needed, as opposed to just stalling and incrementing
the cycle count.
llvm-svn: 59759
2008-11-21 00:10:42 +00:00
Bill Wendling
4020b2b907
Fix error where it wasn't getting the correct caller function.
...
llvm-svn: 59758
2008-11-21 00:09:21 +00:00
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
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
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
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
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
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
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
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
Sanjiv Gupta
e9e4de3e54
Forgot to add this in the previous commit.
...
llvm-svn: 59623
2008-11-19 12:12:49 +00:00
Sanjiv Gupta
da17b053d6
Fixed build warnings.
...
llvm-svn: 59621
2008-11-19 11:27:59 +00:00
Sanjiv Gupta
a66f48d8e9
Added a more function PIC16 backend. However to get this working a patch in
...
ExpandIntegerOperand (LegalizeIntegerTypes.cpp) is needed which is yet to be reworked and submitted.
llvm-svn: 59617
2008-11-19 11:00:54 +00:00
Bill Wendling
896e6cd576
Use stripPointerCasts when checking for AllocaInsts for the stackprotector intrinsic.
...
llvm-svn: 59614
2008-11-19 09:17:16 +00:00
Owen Anderson
482ea64f7b
Add support for rematerialization in pre-alloc-splitting.
...
llvm-svn: 59587
2008-11-19 04:28:29 +00:00
Dan Gohman
d69d23aa7f
Rearrange code to reduce the nesting level. No functionality change.
...
llvm-svn: 59580
2008-11-19 02:00:32 +00:00
Bill Wendling
b8a7d944f1
Use dyn_cast instead of cast.
...
llvm-svn: 59577
2008-11-19 01:25:41 +00:00
Bill Wendling
5a374e2969
Match an element of the return type if it returns a structure.
...
llvm-svn: 59576
2008-11-19 01:15:05 +00:00
Devang Patel
dd2491943e
Remove unused variables.
...
llvm-svn: 59570
2008-11-19 00:22:02 +00:00
Devang Patel
b49b40c2fb
Fix typo.
...
llvm-svn: 59569
2008-11-19 00:19:18 +00:00
Dan Gohman
89a6126c1c
Fix debug printing of flagged SDNodes in SUnits so that they
...
print in the correct order.
llvm-svn: 59567
2008-11-19 00:04:44 +00:00
Evan Cheng
997ba49e23
Make the same change to RegScavenger::backward.
...
llvm-svn: 59566
2008-11-18 23:54:01 +00:00