Sanjiv Gupta
89a7e67578
Make mem[cpy,move,set] intrinsics overloaded.
...
llvm-svn: 59802
2008-11-21 07:49:09 +00:00
Bill Wendling
6c369d3a6f
Default to converting UADDO to the generic form that SADDO is converted to.
...
llvm-svn: 59801
2008-11-21 07:44:30 +00:00
Nick Lewycky
2fbf26fe70
Optimize (x/y)*y into x-(x%y) in general. Div and rem are about the same, and
...
a subtract is cheaper than a multiply. This generalizes an existing transform.
llvm-svn: 59800
2008-11-21 07:33:58 +00:00
Duraid Madina
51f68032c8
LLVM does have a fortran FE!
...
llvm-svn: 59795
2008-11-21 06:26:56 +00:00
Mon P Wang
1026a93fd1
Clean up normalization of shuffles
...
llvm-svn: 59792
2008-11-21 04:25:21 +00:00
Scott Michel
314d705baf
CellSPU:
...
(a) Fix bgs 3052, 3057
(b) Incorporate Duncan's suggestions re: i1 promotion
(c) Indentation updates.
llvm-svn: 59790
2008-11-21 02:56:16 +00:00
Bill Wendling
380aac5f70
Combine the two add with overflow intrinsics lowerings. They differ only in DAG node type.
...
llvm-svn: 59788
2008-11-21 02:38:44 +00:00
Dan Gohman
79202c165e
Set the isAntiDep flag in the MachineInstr scheduler.
...
llvm-svn: 59787
2008-11-21 02:38:21 +00:00
Bill Wendling
b2442fb4d2
Generate code for llvm.uadd.with.overflow intrinsic. No conversion support yet.
...
llvm-svn: 59786
2008-11-21 02:33:36 +00:00
Dan Gohman
be413b4a40
Add a flag to SDep for tracking which edges are anti-dependence edges.
...
llvm-svn: 59785
2008-11-21 02:27:52 +00:00
Bill Wendling
939fe53962
Update comment to reflect a semblance of reality.
...
llvm-svn: 59784
2008-11-21 02:24:44 +00:00
Bill Wendling
e4815d4f45
Remove chains. Unnecessary.
...
llvm-svn: 59783
2008-11-21 02:22:59 +00:00
Dan Gohman
62180eb6f2
Rename SDep's isSpecial to isArtificial, to make this field a little
...
less mysterious.
llvm-svn: 59782
2008-11-21 02:18:56 +00:00
Bill Wendling
1e6d74b84a
Add generic test for add with overflow.
...
llvm-svn: 59781
2008-11-21 02:15:51 +00:00
Bill Wendling
0f9b6c3524
Rename "ADDO" to "SADDO" and "UADDO". The "UADDO" isn't equivalent to "ADDC"
...
because the boolean it returns to indicate an overflow may not be treated like
as a flag. It could be stored to memory, for instance.
llvm-svn: 59780
2008-11-21 02:12:42 +00:00
Bill Wendling
02db3b99bf
Implement the sadd_with_overflow intrinsic. This is converted into
...
"ISD::ADDO". ISD::ADDO is lowered into a target-independent form that does the
addition and then checks if the result is less than one of the operands. (If it
is, then there was an overflow.)
llvm-svn: 59779
2008-11-21 02:03:52 +00:00
Devang Patel
b6d277da6c
Fix unused variable warnings.
...
llvm-svn: 59778
2008-11-21 01:52:59 +00:00
Dan Gohman
fe33ecd2d3
Use ComputeLatency in the MachineInstr scheduler.
...
llvm-svn: 59777
2008-11-21 01:44:51 +00:00
Dan Gohman
34f79b2425
Remove the CycleBound computation code from the ScheduleDAGRRList
...
schedulers. This doesn't have much immediate impact because
targets that use these schedulers by default don't yet provide
pipeline information.
This code also didn't have the benefit of register pressure
information. Also, removing it will avoid problems with list-burr
suddenly starting to do latency-oriented scheduling on x86 when we
start providing pipeline data, which would increase spilling.
llvm-svn: 59775
2008-11-21 01:30:54 +00:00
Bill Wendling
239302c6c9
Update comment.
...
llvm-svn: 59766
2008-11-21 00:45:00 +00:00
Oscar Fuentes
fa0053e297
CMake: Do not rebuild the world when tblgen changes but the .inc files
...
it produces are not affected by the change.
llvm-svn: 59763
2008-11-21 00:18:45 +00:00
Dan Gohman
60693dacec
Implement ComputeLatency for MachineInstr ScheduleDAGs. Factor
...
some of the latency computation logic out of the SDNode
ScheduleDAG code into a TargetInstrItineraries helper method
to help with this.
llvm-svn: 59761
2008-11-21 00:12:10 +00:00
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
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