summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Fix up some comments.Bob Wilson2010-04-091-5/+3
| | | | llvm-svn: 100849
* Add variants of ult, ule, etc. which take a uint64_t RHS, for convenience.Dan Gohman2010-04-081-4/+3
| | | | llvm-svn: 100824
* delete a forwarding function.Chris Lattner2010-04-081-89/+87
| | | | llvm-svn: 100815
* move elf section uniquing to MCContext. Along the wayChris Lattner2010-04-082-20/+2
| | | | | | merge XCore's section into MCSectionELF llvm-svn: 100812
* remove the TargetLoweringObjectFileMachO::getMachoSectionChris Lattner2010-04-081-89/+102
| | | | | | api and update clients to use MCContext instead. llvm-svn: 100808
* move macho section uniquing from MCParser and TLOF to MCContext whereChris Lattner2010-04-081-32/+4
| | | | | | | the compiler and asmparser now unique to the same sections. This fixes rdar://7835021. llvm-svn: 100807
* Coalescer should not delete copy instructions whose defs are partially dead. ↵Evan Cheng2010-04-082-1/+14
| | | | | | | | e.g. %RDI<def,dead> = MOV64rr %RAX<kill>, %EDI<imp-def> llvm-svn: 100804
* Fix -Wsign-compare warning (issued by clang++).Ted Kremenek2010-04-081-1/+1
| | | | llvm-svn: 100799
* Rename a function.Devang Patel2010-04-082-9/+7
| | | | llvm-svn: 100797
* implicit defs get added to the end of machine instrs sometimes. Scan the ↵Chris Lattner2010-04-081-4/+9
| | | | | | whole instruction for the metadata operand instead of assuming it will be at the end of the instruction. llvm-svn: 100792
* One instruction may start (or end) multiple lexical scopes. Devang Patel2010-04-082-58/+28
| | | | | | There is no need to remember labels identifying regions marked by such instructions in each scope. llvm-svn: 100781
* Remove dead code.Devang Patel2010-04-082-9/+0
| | | | llvm-svn: 100771
* Delete out of date comment.Devang Patel2010-04-081-2/+0
| | | | llvm-svn: 100769
* Refactor.Devang Patel2010-04-082-2/+15
| | | | llvm-svn: 100768
* Use twines to simplify calls to report_fatal_error. For code size and ↵Benjamin Kramer2010-04-084-37/+31
| | | | | | readability. llvm-svn: 100756
* Avoid using f64 to lower memcpy from constant string. It's cheaper to use ↵Evan Cheng2010-04-081-8/+12
| | | | | | i32 store of immediates. llvm-svn: 100751
* Make post regalloc machine licm functional. It now passes all of MultiSource.Evan Cheng2010-04-081-79/+169
| | | | llvm-svn: 100742
* convert a report_fatal_error that I was able to trigger into a nice errorChris Lattner2010-04-081-3/+9
| | | | | | | | | | | | | | so the user at least knows what inline asm is a problem. For example: error: inline asm not supported yet: don't know how to handle tied indirect register inputs pr8788-1.c:14:10: note: generated from here asm ("\n" : "+r" (stack->regs) ^ Instead of: fatal error: error in backend: Don't know how to handle tied indirect register inputs yet! llvm-svn: 100731
* minor tidying.Chris Lattner2010-04-072-5/+4
| | | | llvm-svn: 100725
* use assertions instead of unreachable for logic errors.Chris Lattner2010-04-071-28/+26
| | | | llvm-svn: 100724
* introduce a new recoverable error handling API to LLVMContextChris Lattner2010-04-071-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | and use it in one place in inline asm handling stuff. Before we'd generate this for an invalid modifier letter: $ clang asm.c -c -o t.o fatal error: error in backend: Invalid operand found in inline asm: 'abc incl ${0:Z}' INLINEASM <es:abc incl ${0:Z}>, 10, %EAX<def>, 2147483657, %EAX, 14, %EFLAGS<earlyclobber,def,dead>, <!-1> Now we generate this: $ clang asm.c -c -o t.o error: invalid operand in inline asm: 'incl ${0:Z}' asm.c:3:12: note: generated from here __asm__ ("incl %Z0" : "+r" (X)); ^ 1 error generated. This is much better but still admittedly not great ("why" is the operand invalid??), codegen should try harder with its diagnostics :) llvm-svn: 100723
* rename llvm::llvm_report_error -> llvm::report_fatal_errorChris Lattner2010-04-0714-36/+36
| | | | llvm-svn: 100709
* remove some unneeded errorhandling stuff.Chris Lattner2010-04-071-9/+17
| | | | llvm-svn: 100703
* tidy upChris Lattner2010-04-071-5/+5
| | | | llvm-svn: 100700
* Remove late ARM codegen optimization pass committed by accident.Anton Korobeynikov2010-04-071-2/+0
| | | | | | It is not ready for public yet. llvm-svn: 100673
* Initial support for different kinds of FU reservation.Anton Korobeynikov2010-04-072-12/+44
| | | | llvm-svn: 100645
* Factor out scoreboard into separate class. This way we might have several ↵Anton Korobeynikov2010-04-072-58/+70
| | | | | | different score boards. llvm-svn: 100644
* Add hook to insert late LLVM=>LLVM passes just before iselAnton Korobeynikov2010-04-071-0/+2
| | | | llvm-svn: 100640
OpenPOWER on IntegriCloud