summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Let RegisterInfo decide whether it can emit cross-class copy or notAnton Korobeynikov2009-07-161-4/+5
| | | | llvm-svn: 75955
* Scan for presence of calls and determine max callframe size early. To allow ↵Anton Korobeynikov2009-07-162-25/+37
| | | | | | ProcessFunctionBeforeCalleeSaveScan() use this information llvm-svn: 75942
* Propagate return result extension typeAnton Korobeynikov2009-07-161-0/+7
| | | | llvm-svn: 75925
* Let callers decide the sub-register index on the def operand of ↵Evan Cheng2009-07-167-14/+24
| | | | | | | | rematerialized instructions. Avoid remat'ing instructions whose def have sub-register indices for now. It's just really really hard to get all the cases right. llvm-svn: 75900
* Fix coding style issues pointed by Bill.Bruno Cardoso Lopes2009-07-163-26/+30
| | | | llvm-svn: 75898
* Skip special LLVM prefix '1' while emitting linknage name.Devang Patel2009-07-161-4/+25
| | | | | | This prefix is used by LLVM to inform the asm printer to not emit usual global symbol prefix before the symbol name. llvm-svn: 75875
* We don't need to use llvm_report_error, this interface can deal with errorsDaniel Dunbar2009-07-151-2/+2
| | | | | | (although we don't get a very good error message). llvm-svn: 75864
* Revert yesterday's change by removing the LLVMContext parameter to ↵Owen Anderson2009-07-152-3/+3
| | | | | | AllocaInst and MallocInst. llvm-svn: 75863
* Add missing includes.Daniel Dunbar2009-07-151-0/+2
| | | | llvm-svn: 75862
* Verify that there is no kill flag on tied operands on two-address instructions.Jakob Stoklund Olesen2009-07-151-4/+7
| | | | | | | | | | This extra check is not trigged when runnning "make check" on top-of-tree. Change error message to better match llvm_unreachable() grammar. Don't call llvm_unreachable() when writing error messages to a file, but keep going. llvm-svn: 75860
* Lift addAssemblyEmitter into LLVMTargetMachine.Daniel Dunbar2009-07-151-0/+11
| | | | | | - No functionality change. llvm-svn: 75859
* Lift DumpAsm / -print-emitted-asm functionality into LLVMTargetMachine.Daniel Dunbar2009-07-151-5/+15
| | | | | | - No intended functionality change. llvm-svn: 75848
* Fix bug in RegScavenger::scavengeRegister().Jakob Stoklund Olesen2009-07-151-1/+1
| | | | | | | | | | | | | Reserved registers are not candidates for scavenging, and they were removed from the candidate list like this: CreateRegClassMask(RC, Candidates); Candidates ^= ReservedRegs; However, when there are reserved registers outside RC, this causes invalid bits to be set in Candidates. llvm-svn: 75847
* Move a few more convenience factory functions from Constant to LLVMContext.Owen Anderson2009-07-153-5/+9
| | | | llvm-svn: 75840
* ShortenDeadCopySrcLiveRange needs to be more conservative in multi-kill ↵Evan Cheng2009-07-151-1/+6
| | | | | | situations. llvm-svn: 75838
* Lexically order files in CMakeLists.txt files.Ted Kremenek2009-07-151-3/+3
| | | | llvm-svn: 75831
* use std::vector instead of std::list for both Section and Symbol lists becauseBruno Cardoso Lopes2009-07-154-191/+192
| | | | | | we care more about random access than insertion/deletion of elements. llvm-svn: 75828
* remove printSuffixedName.Chris Lattner2009-07-151-27/+5
| | | | llvm-svn: 75742
* Move EVER MORE stuff over to LLVMContext.Owen Anderson2009-07-145-66/+81
| | | | llvm-svn: 75703
* Have asm printers use formatted_raw_ostream directly to avoid aDavid Greene2009-07-142-6/+6
| | | | | | dynamic_cast<>. llvm-svn: 75670
* Reapply my previous asmprinter changes now with more testing and two Chris Lattner2009-07-144-16/+16
| | | | | | | | | | | | | | | | | | | | additional bug fixes: 1. The bug that everyone hit was a problem in the asmprinter where it would remove $stub but keep the L prefix on a name when emitting the indirect symbol. This is easy to fix by keeping the name of the stub and the name of the symbol in a StringMap instead of just keeping a StringSet and trying to reconstruct it late. 2. There was a problem printing the personality function. The current logic to print out the personality function from the DWARF information is a bit of a cesspool right now that duplicates a bunch of other logic in the asm printer. The short version of it is that it depends on emitting both the L and _ prefix for symbols (at least on darwin) and until I can untangle it, it is best to switch the mangler back to emitting both prefixes. llvm-svn: 75646
* llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.Torok Edwin2009-07-1436-153/+153
| | | | | | | | | This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). llvm-svn: 75640
* Revert r7561{9,8,7,6}, which depend on r75610. Daniel Dunbar2009-07-144-16/+16
| | | | | | | | | | | | | | | | | | --- Reverse-merging r75619 into '.': U lib/Target/DarwinTargetAsmInfo.cpp U lib/CodeGen/AsmPrinter/AsmPrinter.cpp --- Reverse-merging r75618 into '.': U lib/CodeGen/ELFWriter.cpp U lib/CodeGen/MachOCodeEmitter.cpp U lib/CodeGen/MachOWriter.cpp --- Reverse-merging r75617 into '.': U lib/Target/CBackend/CBackend.cpp --- Reverse-merging r75616 into '.': U tools/bugpoint/Miscompilation.cpp U tools/lto/LTOCodeGenerator.cpp U tools/lto/LTOModule.cpp llvm-svn: 75638
* eliminate extra space.Torok Edwin2009-07-141-1/+1
| | | | llvm-svn: 75630
* rename getValueName -> getMangledName. These two files have veryChris Lattner2009-07-141-11/+11
| | | | | | dubious looking things that I need to investigate in more detail. llvm-svn: 75619
* Rename getValueName -> getMangledNameChris Lattner2009-07-143-5/+5
| | | | llvm-svn: 75618
* Change the internal interface to makeNameProper to take a bool thatChris Lattner2009-07-142-4/+4
| | | | | | | | | | | | indicates whether the label is private or not, instead of taking prefix stuff. One effect of this is that symbols will be generated with *just* the private prefix, instead of both the private prefix *and* the user-label-prefix, but this doesn't matter as long as it is consistent. For example we'll now get "Lfoo" instead of "L_foo". These are just assembler temporary labels anyway, so they never even make it into the .o file. llvm-svn: 75607
* Do not use Mangler to remove '1' from linkage name.Devang Patel2009-07-141-13/+4
| | | | llvm-svn: 75574
* Fix pr4544. When remating, make sure the destination register fits the ↵Evan Cheng2009-07-141-0/+11
| | | | | | | | instruction definition. It may be mismatched due to sub-register coalescing. No test case yet because the code doesn't trigger until 75408 is re-applied. llvm-svn: 75572
* Revert an accidental commit.Evan Cheng2009-07-131-1/+1
| | | | llvm-svn: 75553
* Use assertion.Devang Patel2009-07-131-2/+4
| | | | llvm-svn: 75540
* Cleanup the global emission and refactor some codeBruno Cardoso Lopes2009-07-134-104/+110
| | | | llvm-svn: 75537
* Move isLCSSAForm, isLoopInvariant, getCanonicalInductionVariable,Dan Gohman2009-07-131-0/+1
| | | | | | | | and related functions out of LoopBase and into Loop, since they are specific to BasicBlock-based loops. This also allows the code to be moved out-of-line. llvm-svn: 75523
* Make Loop and MachineLoop be subclasses of LoopBase, rather than typedefs,Dan Gohman2009-07-131-2/+6
| | | | | | | | | | using the Curiously Recurring Template Pattern with LoopBase. This will help further refactoring, and future functionality for Loop. Also, Headers can now foward-declare Loop, instead of pulling in LoopInfo.h or doing tricks. llvm-svn: 75519
* Use AsmPrinter's Mangler to remove leading '1' from linkage names.Devang Patel2009-07-131-4/+9
| | | | llvm-svn: 75515
* As Chris pointed out, this doesn't actually need an LLVMContext to operate.Owen Anderson2009-07-131-1/+1
| | | | llvm-svn: 75508
* revert rev. 75503 for now.Devang Patel2009-07-132-19/+4
| | | | llvm-svn: 75507
* Use Mangler to remove leading '1' from linkage names.Devang Patel2009-07-132-4/+19
| | | | llvm-svn: 75503
* Add infrastructure to allow post instruction printing action triggers.David Greene2009-07-131-0/+13
| | | | | | | | | | | We'll eventually use this to print comments in asm files and do other fun things. This adds interfaces to the AsmPrinter and changes TableGen to invoke the postInstructionAction when appropriate. It also add parameters to TargetAsmInfo to control comment layout. llvm-svn: 75490
* Match declaration to definition (missed a few).Daniel Dunbar2009-07-131-3/+3
| | | | llvm-svn: 75456
* Match declaration to definition.Daniel Dunbar2009-07-132-2/+2
| | | | llvm-svn: 75454
* Removed some junk code that snuck in to an earlier commit.Lang Hames2009-07-131-5/+0
| | | | llvm-svn: 75450
* Begin the painful process of tearing apart the rat'ss nest that is ↵Owen Anderson2009-07-137-14/+21
| | | | | | | | | Constants.cpp and ConstantFold.cpp. This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's the only way I could figure out to make this process vaguely incremental. llvm-svn: 75445
* Match declaration to definition.Daniel Dunbar2009-07-121-1/+1
| | | | llvm-svn: 75440
* remove llvm.part.set.* and llvm.part.select.*. They have never been Chris Lattner2009-07-122-348/+0
| | | | | | | | | | implemented in codegen, have no frontend to generate them, and are better implemented with pattern matching (like the ppc backend does to generate rlwimi/rlwinm etc). PR4543 llvm-svn: 75430
* Fix assert(0) conversion, as suggested by Chris.Torok Edwin2009-07-124-20/+19
| | | | llvm-svn: 75423
* Implement support for promotion of AND/OR/XOR on integer types.Jakob Stoklund Olesen2009-07-121-8/+19
| | | | | | The blackfin processor has a legal i16 type, but only logic operations on i32. llvm-svn: 75419
* Fix types in PromoteNode handling of CTPOP and friends.Jakob Stoklund Olesen2009-07-121-3/+3
| | | | llvm-svn: 75418
* assert(0) -> LLVM_UNREACHABLE.Torok Edwin2009-07-1130-98/+113
| | | | | | | | | Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. llvm-svn: 75379
* Convert more assert(0)+abort() -> LLVM_UNREACHABLE,Torok Edwin2009-07-1123-156/+183
| | | | | | and abort()/exit() -> llvm_report_error(). llvm-svn: 75363
OpenPOWER on IntegriCloud