summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Implement rdar://7860110 (also in target/readme.txt) narrowingChris Lattner2010-04-151-22/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a load/or/and/store sequence into a narrower store when it is safe. Daniel tells me that clang will start producing this sort of thing with bitfields, and this does trigger a few dozen times on 176.gcc produced by llvm-gcc even now. This compiles code like CodeGen/X86/2009-05-28-DAGCombineCrash.ll into: movl %eax, 36(%rdi) instead of: movl $4294967295, %eax ## imm = 0xFFFFFFFF andq 32(%rdi), %rax shlq $32, %rcx addq %rax, %rcx movq %rcx, 32(%rdi) and each of the testcases into a single store. Each of them used to compile into craziness like this: _test4: movl $65535, %eax ## imm = 0xFFFF andl (%rdi), %eax shll $16, %esi addl %eax, %esi movl %esi, (%rdi) ret llvm-svn: 101343
* Add more const qualifiers for LLVM IR pointers in CodeGen.Dan Gohman2010-04-157-23/+25
| | | | llvm-svn: 101342
* Add const qualifiers to CodeGen's use of LLVM IR constructs.Dan Gohman2010-04-1514-321/+327
| | | | llvm-svn: 101334
* More 80 violations.Evan Cheng2010-04-155-29/+54
| | | | llvm-svn: 101330
* 80 col violations.Evan Cheng2010-04-151-8/+16
| | | | llvm-svn: 101325
* Add comment.Devang Patel2010-04-151-0/+3
| | | | llvm-svn: 101317
* There is no need to track compile unit offsets if there is only one compile ↵Devang Patel2010-04-142-6/+0
| | | | | | unit. llvm-svn: 101315
* Remove dead code.Devang Patel2010-04-141-4/+0
| | | | llvm-svn: 101314
* Delete unneeeded arguments.Dan Gohman2010-04-141-1/+1
| | | | llvm-svn: 101276
* Delete unused arguments.Dan Gohman2010-04-141-6/+4
| | | | llvm-svn: 101275
* Factor out EH landing pad code into a separate function, and constifyDan Gohman2010-04-144-52/+61
| | | | | | a bunch of stuff to support it. llvm-svn: 101273
* Reset the debug location even if the instruction was a terminator.Dan Gohman2010-04-141-5/+3
| | | | llvm-svn: 101272
* Refine #includes.Dan Gohman2010-04-141-1/+1
| | | | llvm-svn: 101269
* Pull utility routines with no SelectionDAG dependence out ofDan Gohman2010-04-143-76/+95
| | | | | | | SelectionDAGBuilder. FunctionLoweringInfo isn't an ideal place for them to live, but it's better than SelectionDAGBuilder for now. llvm-svn: 101267
* Fix typos in comments.Dan Gohman2010-04-142-2/+2
| | | | llvm-svn: 101266
* Delete an obsolete comment.Dan Gohman2010-04-141-1/+0
| | | | llvm-svn: 101264
* Delete an unused function.Dan Gohman2010-04-141-4/+0
| | | | llvm-svn: 101263
* Clear the FunctionLoweringInfo object before doing other things thatDan Gohman2010-04-141-4/+4
| | | | | | don't need it. llvm-svn: 101262
* Move this assert out of SelectionDAGISel into FunctionLoweringInfo, andDan Gohman2010-04-142-5/+3
| | | | | | drop the redundant #ifndef NDEBUG. llvm-svn: 101261
* Add a comment.Dan Gohman2010-04-141-0/+2
| | | | llvm-svn: 101260
* Move the code for initialing the entry block livein set out ofDan Gohman2010-04-142-5/+5
| | | | | | SelectionDAGISel. llvm-svn: 101258
* Reorgnaize this code to be more tidy and readable.Dan Gohman2010-04-141-10/+5
| | | | llvm-svn: 101256
* Trim #includes.Dan Gohman2010-04-141-9/+0
| | | | llvm-svn: 101255
* Move the code for emitting livein copies out of SelectionDAGISel.Dan Gohman2010-04-142-105/+107
| | | | llvm-svn: 101254
* Sink landing-pad marking code out ofDan Gohman2010-04-142-5/+5
| | | | | | SelectionDAGISel::runOnMachineFunction into FunctionLowering. llvm-svn: 101252
* It's not necessary to recompute EB here.Dan Gohman2010-04-141-1/+1
| | | | llvm-svn: 101251
* Generalize this code to handle Instructions in addition to ConstantExprs.Dan Gohman2010-04-141-3/+3
| | | | llvm-svn: 101210
* Reorder the methods of this class to be a little more organized.Dan Gohman2010-04-141-22/+22
| | | | llvm-svn: 101206
* Clear MachineInstr->MCSymbol maps at the end of a function.Devang Patel2010-04-141-0/+2
| | | | llvm-svn: 101202
* Fast path implicit_def check.Evan Cheng2010-04-131-5/+5
| | | | llvm-svn: 101183
* Do not include types without any definition in pubtypes list.Devang Patel2010-04-131-2/+4
| | | | llvm-svn: 101171
* Avoid variable shadowing.Evan Cheng2010-04-131-2/+2
| | | | llvm-svn: 101170
* Expand postra machine licm's capability a little more. If an instruction's ↵Evan Cheng2010-04-131-8/+24
| | | | | | register operands are all loop invariants, then it's safe to hoist it. llvm-svn: 101167
* Teach MachineSinking to handle easy critical edges.Jakob Stoklund Olesen2010-04-131-2/+17
| | | | | | | | | | | | | | Sometimes it is desirable to sink instructions along a critical edge: x = ... if (a && b) ... else use(x); The 'a && b' condition creates a critical edge to the else block, but we still want to sink the computation of x into the block. The else block is dominated by the parent block, so we are not pushing instructions into new code paths. llvm-svn: 101165
* Teach postra machine licm to hoist more obvious invariants, e.g. ↵Evan Cheng2010-04-131-17/+38
| | | | | | instructions with no source operands. llvm-svn: 101154
* Add a few comments.Dan Gohman2010-04-131-0/+5
| | | | llvm-svn: 101148
* Eliminate MachineBasicBlock::const_livein_iterator and makeDan Gohman2010-04-136-9/+10
| | | | | | | | MachineBasicBlock::livein_iterator a const_iterator, because clients shouldn't ever be using the iterator interface to mutate the livein set. llvm-svn: 101147
* Rename MachineFrameInfo variables to MFI, for consistency withDan Gohman2010-04-131-41/+41
| | | | | | the rest of CodeGen. llvm-svn: 101146
* Move MachineRegisterInfo's isLiveIn and isLiveOut out of line.Dan Gohman2010-04-131-0/+14
| | | | llvm-svn: 101145
* Delete an unused member variable.Dan Gohman2010-04-131-1/+0
| | | | llvm-svn: 101143
* add llvm codegen support for -ffunction-sections and -fdata-sections,Chris Lattner2010-04-131-2/+36
| | | | | | patch by Sylvere Teissier! llvm-svn: 101106
* Remove a #include.Dan Gohman2010-04-121-1/+0
| | | | llvm-svn: 101043
* Plug trivial leak.Benjamin Kramer2010-04-121-0/+2
| | | | llvm-svn: 101034
* Enable post regalloc machine licm by default.Evan Cheng2010-04-121-5/+1
| | | | llvm-svn: 101023
* Remove unnecessary parens.Dan Gohman2010-04-122-4/+4
| | | | llvm-svn: 101010
* Tidy whitespace.Bob Wilson2010-04-091-9/+8
| | | | llvm-svn: 100904
* Clear InsnsBeginScopeSet and InsnsEndScopeSet at the end of function.Devang Patel2010-04-091-0/+2
| | | | llvm-svn: 100867
* Delete this obsolete comment.Dan Gohman2010-04-091-4/+0
| | | | llvm-svn: 100858
* Add a missing dependency to this library when building with CMake.Chandler Carruth2010-04-091-0/+2
| | | | llvm-svn: 100852
* Use getNumImplicitDefs() and getNumImplicitUses().Bob Wilson2010-04-091-24/+6
| | | | llvm-svn: 100850
OpenPOWER on IntegriCloud