- Dec 03, 2008
-
-
Dan Gohman authored
is set but mayLoad is not set. Fix all the problems this turned up. Change code to not use isSimpleLoad instead of mayLoad unless it really wants isSimpleLoad. llvm-svn: 60459
-
Dan Gohman authored
llvm-svn: 60458
-
Dan Gohman authored
than just i32. llvm-svn: 60455
-
Dan Gohman authored
delegates to the regular x86-32 convention which handles byval, but only after it handles a few cases, and it's necessary to handle byval before handling those cases. This fixes PR3122 (and rdar://6400815), llvm-gcc miscompiling LLVM. llvm-svn: 60453
-
- Dec 02, 2008
-
-
Scott Michel authored
- Incorporate Tilmann Scheller's ISD::TRUNCATE custom lowering patch - Update SPU calling convention info, even if it's not used yet (but can be at some point or another) - Ensure that any-extended f32 loads are custom lowered, especially when they're promoted for use in printf. llvm-svn: 60438
-
Chris Lattner authored
llvm-svn: 60404
-
Bill Wendling authored
constant. If X is a constant, then this is folded elsewhere. - Added a note to Target/README.txt to indicate that we'd like to implement this when we're able. llvm-svn: 60399
-
Bill Wendling authored
- LowerXADDO lowers [SU]ADDO into an ADD with an implicit EFLAGS define. The EFLAGS are fed into a SETCC node which has the conditional COND_O or COND_C, depending on the type of ADDO requested. - LowerBRCOND now recognizes if it's coming from a SETCC node with COND_O or COND_C set. llvm-svn: 60388
-
Bill Wendling authored
llvm-svn: 60385
-
Bill Wendling authored
llvm-svn: 60383
-
Bill Wendling authored
- Add support for seto, setno, setc, and setnc instructions. llvm-svn: 60382
-
- Dec 01, 2008
-
-
Scott Michel authored
- Fix v2[if]64 vector insertion code before IBM files a bug report. - Ensure that zero (0) offsets relative to $sp don't trip an assert (add $sp, 0 gets legalized to $sp alone, tripping an assert) - Shuffle masks passed to SPUISD::SHUFB are now v16i8 or v4i32 llvm-svn: 60358
-
Duncan Sands authored
MERGE_VALUES node with only one operand, so get rid of special code that only existed to handle that possibility. llvm-svn: 60349
-
Duncan Sands authored
ReplaceNodeResults: rather than returning a node which must have the same number of results as the original node (which means mucking around with MERGE_VALUES, and which is also easy to get wrong since SelectionDAG folding may mean you don't get the node you expect), return the results in a vector. llvm-svn: 60348
-
Bill Wendling authored
permutations of this pattern. llvm-svn: 60312
-
- Nov 30, 2008
-
-
Bill Wendling authored
llvm-svn: 60291
-
Bill Wendling authored
takes care of all permutations of this pattern. llvm-svn: 60290
-
Eli Friedman authored
llvm-svn: 60286
-
Eli Friedman authored
Hopefully this isn't too much stuff to dump into this file. llvm-svn: 60285
-
- Nov 28, 2008
-
-
Duncan Sands authored
gcc 4.4 (due to use of sprintf). llvm-svn: 60209
-
Duncan Sands authored
being both a namespace and a variable name. llvm-svn: 60208
-
- Nov 27, 2008
-
-
Nick Lewycky authored
llvm-svn: 60188
-
Nick Lewycky authored
llvm-svn: 60186
-
Bill Wendling authored
llvm-svn: 60156
-
Evan Cheng authored
llvm-svn: 60145
-
Evan Cheng authored
On x86 favors folding short immediate into some arithmetic operations (e.g. add, and, xor, etc.) because materializing an immediate in a register is expensive in turns of code size. e.g. movl 4(%esp), %eax addl $4, %eax is 2 bytes shorter than movl $4, %eax addl 4(%esp), %eax llvm-svn: 60139
-
- Nov 26, 2008
-
-
Bill Wendling authored
the conditional for the BRCOND statement. For instance, it will generate: addl %eax, %ecx jo LOF instead of addl %eax, %ecx ; About 10 instructions to compare the signs of LHS, RHS, and sum. jl LOF llvm-svn: 60123
-
Evan Cheng authored
llvm-svn: 60110
-
Sanjiv Gupta authored
Custom lower AND, OR, XOR bitwise operations. llvm-svn: 60098
-
Dan Gohman authored
llvm-svn: 60095
-
Nick Lewycky authored
__attribute__ notation which is supported on more platforms. llvm-svn: 60083
-
- Nov 25, 2008
-
-
Scott Michel authored
(a) Remove conditionally removed code in SelectXAddr. Basically, hope for the best that the A-form and D-form address predicates catch everything before the code decides to emit a X-form address. (b) Expand vector store test cases to include the usual suspects. llvm-svn: 60034
-
Scott Michel authored
they were too tight according to bug 3126. Fix bug 3126. llvm-svn: 60006
-
Scott Michel authored
llvm-svn: 59998
-
- Nov 24, 2008
-
-
Bill Wendling authored
- Mark "add with overflow" as having a custom lowering for X86. Give it a null lowering representation for now. llvm-svn: 59971
-
Scott Michel authored
(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
-
Scott Michel authored
(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
-
Duncan Sands authored
(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
-
Matthijs Kooijman authored
llvm-svn: 59958
-
Evan Cheng authored
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
-