- Apr 02, 2010
-
-
Benjamin Kramer authored
llvm-svn: 100225
-
Chris Lattner authored
llvm-svn: 100223
-
Chris Lattner authored
llvm-svn: 100215
-
Chris Lattner authored
representation. This eliminates the 'DILocation' MDNodes for file/line/col tuples from -O0 -g codegen. This remove the old DebugLoc class, making it a typedef for DebugLoc, I'll rename NewDebugLoc next. I didn't update the JIT to use the new apis, so it will continue to work, but be as slow as before. Someone should eventually do this or, better yet, rip out the JIT debug info stuff and build the JIT on top of MC. llvm-svn: 100209
-
Evan Cheng authored
llvm-svn: 100208
-
Mon P Wang authored
llvm-svn: 100199
-
Mon P Wang authored
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) llvm-svn: 100191
-
- Apr 01, 2010
-
-
Evan Cheng authored
llvm-svn: 100133
-
Evan Cheng authored
- Do not try to infer GV alignment unless its type is sized. It's not possible to infer alignment if it has opaque type. llvm-svn: 100118
-
Evan Cheng authored
1. Makes it possible to lower with floating point loads and stores. 2. Avoid unaligned loads / stores unless it's fast. 3. Fix some memcpy lowering logic bug related to when to optimize a load from constant string into a constant. 4. Adjust x86 memcpy lowering threshold to make it more sane. 5. Fix x86 target hook so it uses vector and floating point memory ops more effectively. rdar://7774704 llvm-svn: 100090
-
- Mar 31, 2010
-
-
Chris Lattner authored
llvm-svn: 99986
-
Chris Lattner authored
instructions. In addition to being a convenience, they are faster than the old apis, particularly when not going from an MDKindID like people should be doing. llvm-svn: 99982
-
Bob Wilson authored
llvm-svn: 99948
-
- Mar 30, 2010
-
-
Mon P Wang authored
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) A update of langref will occur in a subsequent checkin. llvm-svn: 99928
-
Evan Cheng authored
llvm-svn: 99901
-
- Mar 29, 2010
-
-
Evan Cheng authored
llvm-svn: 99840
-
Evan Cheng authored
llvm-svn: 99836
-
- Mar 28, 2010
-
-
Chris Lattner authored
llvm-svn: 99774
-
Chris Lattner authored
and those derived from them. These are obnoxious because they were written as: PatLeaf<(bitconvert). Not having an argument was foiling adding better type checking for operand count matching up with what was required (in this case, bitconvert always requires an operand!) llvm-svn: 99759
-
Chris Lattner authored
llvm-svn: 99742
-
Chris Lattner authored
are cleaned up, we can remove an old fixme. llvm-svn: 99741
-
Chris Lattner authored
1, 1 cases which are by-far the most frequent. This shrinks the X86 isel table from 77014 -> 74657 bytes. llvm-svn: 99740
-
Chris Lattner authored
can cause a crash on crazy situations in msp430 when morph-node-to is disabled. llvm-svn: 99739
-
Chris Lattner authored
list multiple times when MorphNodeTo can't be applied. llvm-svn: 99735
-
- Mar 27, 2010
-
-
Chris Lattner authored
scope due to obviously false predicate. llvm-svn: 99723
-
Bill Wendling authored
llvm-svn: 99697
-
- Mar 26, 2010
-
-
Anton Korobeynikov authored
llvm-svn: 99656
-
Evan Cheng authored
LiveVariables should clear kill / dead markers first. This allows us to remove a hack in the scheduler. llvm-svn: 99597
-
- Mar 25, 2010
-
-
Chris Lattner authored
the custom insertion hook deletes the instruction, then we try to set dead flags on it. Neither the code that I added nor the code that was there before was safe. llvm-svn: 99538
-
Evan Cheng authored
Scheduler assumes SDDbgValue nodes are in source order. That's true currently. But add an assertion to verify it. llvm-svn: 99501
-
Chris Lattner authored
bytes instead of one byte. This is important because we're running up to too many opcodes to fit in a byte and it is aggrevated by FIRST_TARGET_MEMORY_OPCODE making the numbering sparse. This just bites the bullet and bloats out the table. In practice, this increases the size of the x86 isel table from 74.5K to 76K. I think we'll cope :) This fixes rdar://7791648 llvm-svn: 99494
-
Evan Cheng authored
llvm-svn: 99489
-
Evan Cheng authored
llvm-svn: 99487
-
Chris Lattner authored
happening. Enhance scheduling to set the DEAD flag on implicit defs more aggressively. Before, we'd set an implicit def operand to dead if it were present in the SDNode corresponding to the machineinstr but had no use. Now we do it in this case AND if the implicit def does not exist in the SDNode at all. This exposes a couple of problems: one is the FIXME, which causes a live intervals crash on CodeGen/X86/sibcall.ll. The second is that it makes machinecse and licm more aggressive (which is a good thing) but also exposes a case where licm hoists a set0 and then it doesn't get resunk. Talking to codegen folks about both these issues, but I need this patch in in the meantime. llvm-svn: 99485
-
Chris Lattner authored
r99453. llvm-svn: 99482
-
Evan Cheng authored
Change how dbg_value sdnodes are converted into machine instructions. Their placement should be determined by the relative order of incoming llvm instructions. The scheduler will now use the SDNode ordering information to determine where to insert them. A dbg_value instruction is inserted after the instruction with the last highest source order and before the instruction with the next highest source order. It will optimize the placement by inserting right after the instruction that produces the value if they have consecutive order numbers. Here is a theoretical example that illustrates why the placement is important. tmp1 = store tmp1 -> x ... tmp2 = add ... ... call ... store tmp2 -> x Now mem2reg comes along: tmp1 = dbg_value (tmp1 -> x) ... tmp2 = add ... ... call ... dbg_value (tmp2 -> x) When the debugger examine the value of x after the add instruction but before the call, it should have the value of tmp1. Furthermore, for dbg_value's that reference constants, they should not be emitted at the beginning of the block (since they do not have "producers"). This patch also cleans up how SDISel manages DbgValue nodes. It allow a SDNode to be referenced by multiple SDDbgValue nodes. When a SDNode is deleted, it uses the information to find the SDDbgValues and invalidate them. They are not deleted until the corresponding SelectionDAG is destroyed. llvm-svn: 99469
-
Chris Lattner authored
2006-07-19-stwbrx-crash.ll for me, but it's the only likely patch in the blame list of several bots. Lets see if this fixes it. llvm-svn: 99453
-
- Mar 24, 2010
-
-
Chris Lattner authored
llvm-svn: 99445
-
Chris Lattner authored
llvm-svn: 99444
-
Dan Gohman authored
llvm-svn: 99372
-