Bill Wendling
f6dd065808
Hacker's Delight says, "Signed integer overflow of addition occurs if and only
...
if the operands have the same sign and the sum has sign opposite to that of the
operands."
llvm-svn: 60014
2008-11-25 08:12:19 +00:00
Chris Lattner
242f05e503
Teach MatchScaledValue to handle Scales by 1 with MatchAddr (which
...
can recursively match things) and scales by 0 by ignoring them.
This triggers once in 403.gcc, saving 1 (!!!!) instruction in the
whole huge app.
llvm-svn: 60013
2008-11-25 07:25:26 +00:00
Chris Lattner
5e0361dd74
significantly refactor all the addressing mode matching logic
...
into a new AddressingModeMatcher class. This makes it easier
to reason about and reduces passing around of stuff, but has
no functionality change.
llvm-svn: 60012
2008-11-25 07:09:13 +00:00
Chris Lattner
9ed8c8eec9
refactor all the constantexpr/instruction handling code out into a
...
new FindMaximalLegalAddressingModeForOperation helper method.
llvm-svn: 60011
2008-11-25 05:15:49 +00:00
Chris Lattner
587e7c0202
another minor tweak
...
llvm-svn: 60010
2008-11-25 04:47:41 +00:00
Chris Lattner
85da435a15
minor cleanups no functionality change.
...
llvm-svn: 60009
2008-11-25 04:42:10 +00:00
Oscar Fuentes
c87fe528d8
CMake: Documented two cmake variables.
...
llvm-svn: 60008
2008-11-25 04:23:36 +00:00
Scott Michel
cf956c87a7
CellSPU: Relax constraints on when to generate a X-form address, evidently
...
they were too tight according to bug 3126.
Fix bug 3126.
llvm-svn: 60006
2008-11-25 04:03:47 +00:00
Scott Michel
bb575152bc
CellSPU: test should use shlqby, not shlqbyi
...
llvm-svn: 60001
2008-11-25 01:30:37 +00:00
Bill Wendling
c9f3eec3f9
XFAIL this test. A recent CellSPU check-in broke it.
...
llvm-svn: 60000
2008-11-25 00:56:34 +00:00
Dan Gohman
92cedc8a95
Initial support for anti-dependence breaking. Currently this code does not
...
introduce any new spilling; it just uses unused registers.
Refactor the SUnit topological sort code out of the RRList scheduler and
make use of it to help with the post-pass scheduler.
llvm-svn: 59999
2008-11-25 00:52:40 +00:00
Scott Michel
a37c52f255
CellSPU: Fix mnemonic typo in pattern; "shlqbyi" -> "shlqby".
...
llvm-svn: 59998
2008-11-25 00:23:16 +00:00
Bill Wendling
cb92038dbd
Testcase for constant CFStrings.
...
llvm-svn: 59992
2008-11-24 23:28:09 +00:00
Chris Lattner
2f8129238b
rearrange and tidy some code, no functionality change.
...
llvm-svn: 59990
2008-11-24 22:44:16 +00:00
Chris Lattner
9b5c9d8b0b
minor cleanups to debug code, no functionality change.
...
llvm-svn: 59989
2008-11-24 22:40:05 +00:00
Chris Lattner
a07ad05059
reenable test
...
llvm-svn: 59986
2008-11-24 21:27:20 +00:00
Chris Lattner
9f34dba0e4
reenable the right part of the code.
...
llvm-svn: 59985
2008-11-24 21:26:21 +00:00
Bill Wendling
36ee715e71
Temporarily XFAIL this test. r59976 and r59972 broke it.
...
llvm-svn: 59981
2008-11-24 20:43:33 +00:00
Dan Gohman
07c5a496e4
Move the scheduler constructor functions to SchedulerRegistry.h, to
...
simplify header dependencies for front-ends that just want to choose
a scheduler and don't need all the scheduling machinery declarations.
llvm-svn: 59978
2008-11-24 19:53:21 +00:00
Dan Gohman
f084381b98
Fix an unused-parameter warning.
...
llvm-svn: 59977
2008-11-24 19:51:59 +00:00
Chris Lattner
561b0adda9
revert an accidental commit, this fixes the regression on test/CodeGen/X86/isel-sink.ll
...
llvm-svn: 59976
2008-11-24 19:40:34 +00:00
Chris Lattner
e5bf93e61f
Fix 3113: If we have a dead cyclic PHI, replace the whole thing
...
with an undef.
llvm-svn: 59972
2008-11-24 19:25:36 +00:00
Bill Wendling
0560ba7668
- Make lowering of "add with overflow" customizable by back-ends.
...
- Mark "add with overflow" as having a custom lowering for X86. Give it a null
lowering representation for now.
llvm-svn: 59971
2008-11-24 19:21:46 +00:00
Scott Michel
259a64c097
CellSPU:
...
(a) Slight rethink on i64 zero/sign/any extend code - use a shuffle to
directly zero-extend i32 to i64, but use rotates and shifts for
sign extension. Also ensure unified register consistency.
(b) Add new test harness for i64 operations: i64ops.ll
llvm-svn: 59970
2008-11-24 18:20:46 +00:00
Dan Gohman
bacca559dd
Check in the rest of this change. The isAntiDep flag needs to be passed
...
to removePred because an SUnit can both data-depend and anti-depend
on the same SUnit.
llvm-svn: 59969
2008-11-24 17:33:52 +00:00
Dan Gohman
6dcf3a7c22
Pass the isAntiDep argument.
...
llvm-svn: 59968
2008-11-24 17:24:27 +00:00
Dan Gohman
dcc6608aa6
Run post-RA scheduling after branch folding, as it tends to
...
obscure tail-merging opportunities.
llvm-svn: 59967
2008-11-24 17:22:52 +00:00
Dan Gohman
83971772a6
Fix a few HTML tidiness issues.
...
llvm-svn: 59966
2008-11-24 17:18:39 +00:00
Scott Michel
c3965308a4
CellSPU:
...
(a) Improve the extract element code: there's no need to do gymnastics with
rotates into the preferred slot if a shuffle will do the same thing.
(b) Rename a couple of SPUISD pseudo-instructions for readability and better
semantic correspondence.
(c) Fix i64 sign/any/zero extension lowering.
llvm-svn: 59965
2008-11-24 17:11:17 +00:00
Dan Gohman
66dc0a5cbe
Delete some spurious characters.
...
llvm-svn: 59964
2008-11-24 16:45:15 +00:00
Dan Gohman
386810ca94
Fix some "</p>"s.
...
llvm-svn: 59963
2008-11-24 16:35:31 +00:00
Dan Gohman
d7f821e645
Some documentation for LegalizeTypes.
...
llvm-svn: 59962
2008-11-24 16:27:17 +00:00
Matthijs Kooijman
b316bd9e62
Minor fix debug for register allocation debug output.
...
llvm-svn: 59961
2008-11-24 16:01:21 +00:00
Duncan Sands
9816d42357
If the type legalizer actually legalized anything
...
(this doesn't happen that often, since most code
does not use illegal types) then follow it by a
DAG combiner run that is allowed to generate
illegal operations but not illegal types. I didn't
modify the target combiner code to distinguish like
this between illegal operations and illegal types,
so it will not produce illegal operations as well
as not producing illegal types.
llvm-svn: 59960
2008-11-24 14:53:14 +00:00
Matthijs Kooijman
73be220b45
Fix comments.
...
llvm-svn: 59958
2008-11-24 11:44:00 +00:00
Torok Edwin
c120302836
NULL, unique pointers from malloc(0), and freed pointers are legal values for
...
noalias attribute parameters/return values.
llvm-svn: 59955
2008-11-24 08:02:24 +00:00
Evan Cheng
a19ef59d6c
Move target independent td files from lib/Target/ to include/llvm/Target so they can be distributed along with the header files.
...
llvm-svn: 59953
2008-11-24 07:34:46 +00:00
Evan Cheng
c6797a1379
Eliminate some unused variable compile time warnings.
...
llvm-svn: 59952
2008-11-24 07:09:49 +00:00
Bill Wendling
855ac77084
Test add-with-overflow with fast ISel.
...
llvm-svn: 59945
2008-11-24 05:23:38 +00:00
Nick Lewycky
b8b082166a
Seriously strengthen the guarantee offered by noalias on a function's return
...
value. It must now be as if the pointer were allocated and has not escaped to
the caller. Thanks to Dan Gohman for pointing out the error in the original
and helping devise this definition.
llvm-svn: 59940
2008-11-24 05:00:44 +00:00
Nick Lewycky
47fa9bd187
Extend the 'noalias' attribute to function return values. This is intended to
...
indicate functions that allocate, such as operator new, or list::insert. The
actual definition is slightly less strict (for now).
No changes to the bitcode reader/writer, asm printer or verifier were needed.
llvm-svn: 59934
2008-11-24 03:41:24 +00:00
Mon P Wang
c9ba9d066e
Added missing description for -disable-mmx option.
...
llvm-svn: 59929
2008-11-24 02:10:43 +00:00
Bill Wendling
4bb8a7a498
Add support for llvm.uadd.with.overflow.
...
llvm-svn: 59926
2008-11-24 01:38:29 +00:00
Scott Michel
d8a57b624e
Roll back rev 59890, since Chris says this can never happen.
...
llvm-svn: 59914
2008-11-23 19:22:48 +00:00
Duncan Sands
f9ea1124c9
Rename SetCCResultContents to BooleanContents. In
...
practice these booleans are mostly produced by SetCC,
however the concept is more general.
llvm-svn: 59911
2008-11-23 15:47:28 +00:00
Chris Lattner
5c70ae0588
Make JIT::runFunction handle functions with non-C calling conventions.
...
llvm-svn: 59904
2008-11-23 08:00:11 +00:00
Mon P Wang
0f887d148c
Added -disable-mmx using a patch from Preston Gurd.
...
llvm-svn: 59901
2008-11-23 04:37:22 +00:00
Mon P Wang
e1c40f4258
Added check to avoid generating extract subvector beyond the end of the vector when normalizing vector shuffles.
...
llvm-svn: 59900
2008-11-23 04:35:05 +00:00
Misha Brukman
2fc3f5daa5
Fixed named anchor for llvm.stackprotector intrinsic.
...
llvm-svn: 59893
2008-11-22 23:55:29 +00:00
Scott Michel
50e49b28f0
CellSPU: Fix bug 3056. Varadic extract_element was not implemented (nor was it
...
ever conceived to occur).
llvm-svn: 59891
2008-11-22 23:50:42 +00:00