summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Avoid adding a duplicate def. This fixes PR4478.Evan Cheng2009-07-061-2/+11
| | | | llvm-svn: 74857
* Fix the cmake build - patch by Xerxes Rånby.Duncan Sands2009-07-061-0/+1
| | | | llvm-svn: 74825
* Changed ELFCodeEmitter to inherit from ObjectCodeEmitterBruno Cardoso Lopes2009-07-064-131/+51
| | | | llvm-svn: 74821
* Cleanup MachO writer and code emitter. Fix 80 cols problems, remove extra ↵Bruno Cardoso Lopes2009-07-065-187/+206
| | | | | | spaces, shrink down includes and move some methods out-of-line llvm-svn: 74817
* Just forgot to include the two new filesBruno Cardoso Lopes2009-07-061-0/+142
| | | | llvm-svn: 74814
* Add the Object Code Emitter class. Original patch by Aaron Gray, I did someBruno Cardoso Lopes2009-07-067-255/+171
| | | | | | cleanup, removed some #includes and moved Object Code Emitter out-of-line. llvm-svn: 74813
* More LLVMContext-ification.Owen Anderson2009-07-051-1/+1
| | | | llvm-svn: 74807
* Add NumFixedArgs attribute to CallSDNode which indicates the number of fixed ↵Tilmann Scheller2009-07-034-13/+14
| | | | | | | | | | | arguments in a vararg call. With the SVR4 ABI on PowerPC, vector arguments for vararg calls are passed differently depending on whether they are a fixed or a variable argument. Variable vector arguments always go into memory, fixed vector arguments are put into vector registers. If there are no free vector registers available, fixed vector arguments are put on the stack. The NumFixedArgs attribute allows to decide for an argument in a vararg call whether it belongs to the fixed or variable portion of the parameter list. llvm-svn: 74764
* Factor some code out and support for Jump Table relocationsBruno Cardoso Lopes2009-07-034-42/+142
| | | | llvm-svn: 74760
* Simplify debug info intrisinc lowering.Devang Patel2009-07-022-162/+115
| | | | llvm-svn: 74733
* CMake build fixes, from Xerxes RanbyDouglas Gregor2009-07-022-1/+3
| | | | llvm-svn: 74720
* shrinking down #includesBruno Cardoso Lopes2009-07-025-67/+63
| | | | llvm-svn: 74718
* Remove getFunctionAlignment from TargetELFInfo and use new MachineFunction ↵Bruno Cardoso Lopes2009-07-021-4/+5
| | | | | | alignment method llvm-svn: 74686
* Simplify. Devang Patel2009-07-022-17/+17
| | | | llvm-svn: 74677
* Simplify. No intentional functionality change.Devang Patel2009-07-021-49/+36
| | | | llvm-svn: 74673
* Refactor. No functionality change.Devang Patel2009-07-011-10/+4
| | | | llvm-svn: 74659
* llvm.dbg.declare is always used for local variable's debug info.Devang Patel2009-07-011-4/+1
| | | | llvm-svn: 74625
* CommuteChangesDestination() should check if to-be-commuted instruction ↵Evan Cheng2009-07-011-16/+30
| | | | | | defines any register. Also teaches the default commuteInstruction() to commute instruction without definitions (e.g. X86::test / ARM::tsp). llvm-svn: 74602
* Remove special handling of implicit_def. Fix a couple more bugs in ↵Evan Cheng2009-07-013-51/+74
| | | | | | | | liveintervalanalysis and coalescer handling of implicit_def. Note, isUndef marker must be placed even on implicit_def def operand or else the scavenger will not ignore it. This is necessary because -O0 path does not use liveintervalanalysis, it treats implicit_def just like any other def. llvm-svn: 74601
* Handle IMPLICIT_DEF with isUndef operand marker, part 2. This patch moves ↵Evan Cheng2009-07-014-36/+104
| | | | | | the code to annotate machineoperands to LiveIntervalAnalysis. It also add markers for implicit_def that define physical registers. The rest, is just a lot of details. llvm-svn: 74580
* Remove unused AsmPrinter OptLevel argument, and propogate.Daniel Dunbar2009-07-011-2/+2
| | | | | | | - This more or less amounts to a revert of r65379. I'm curious to know what happened that caused this variable to become unused. llvm-svn: 74579
* Add an "alignment" field to the MachineFunction object. It makes more sense toBill Wendling2009-06-301-4/+6
| | | | | | | | | | have the alignment be calculated up front, and have the back-ends obey whatever alignment is decided upon. This allows for future work that would allow for precise no-op placement and the like. llvm-svn: 74564
* Temporarily restore the scavenger implicit_def checking code. MachineOperand ↵Evan Cheng2009-06-301-5/+23
| | | | | | isUndef mark is not being put on implicit_def of physical registers (created for parameter passing, etc.). llvm-svn: 74519
* Add a bit IsUndef to MachineOperand. This indicates the def / use register ↵Evan Cheng2009-06-306-59/+58
| | | | | | | | | | operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them. The register allocator, when it allocates a register to a virtual register defined by an implicit_def, can allocate any physical register without worrying about overlapping live ranges. It should mark all of operands of the said virtual register so later passes will do the right thing. This is not the best solution. But it should be a lot less fragile to having the scavenger try to track what is defined by implicit_def. llvm-svn: 74518
* Struct types are described using field types only.Devang Patel2009-06-291-3/+0
| | | | llvm-svn: 74477
* s/MainCU/ModuleCU/gDevang Patel2009-06-292-30/+29
| | | | llvm-svn: 74452
* Multiple DW_TAG_compile_unit is not used, afaict, on any target.Devang Patel2009-06-291-103/+41
| | | | | | Update dwarf writer to only emit one DW_TAG_compile_unit per .o file. llvm-svn: 74449
* Eliminate a layer of indirection in LoopInfo and MachineLoopInfo.Dan Gohman2009-06-271-1/+1
| | | | llvm-svn: 74394
* When doing remat, don't consider uses of non-allocatable physregs. Patch Chris Lattner2009-06-271-0/+4
| | | | | | by Evan. llvm-svn: 74370
* fix a typo that GCC should have caught that causes crashes with -view-*-dagsChris Lattner2009-06-271-1/+1
| | | | llvm-svn: 74364
* fix a really subtle bug in the cross section of aliases and TLS:Chris Lattner2009-06-261-9/+3
| | | | | | | | | | | the SelectionDAG::getGlobalAddress function properly looks through aliases to determine thread-localness, but then passes the GV* down to GlobalAddressSDNode::GlobalAddressSDNode which does not. Instead of passing down isTarget, just pass down the predetermined node opcode. This fixes some assertions with out of tree changes I'm working on. llvm-svn: 74325
* Get rid of these cache variables, which are a holdover from the days whenOwen Anderson2009-06-261-41/+28
| | | | | | we had multiple type planes and these lookups were expensive. llvm-svn: 74319
* implement DOTGraphTraits<SelectionDAG*>::getNodeLabel in terms ofChris Lattner2009-06-261-138/+5
| | | | | | SDNode::print_details to eliminate a ton of near-duplicate code. llvm-svn: 74311
* Fix linking of llvm-ld and lli with CMake, from Xerxes RånbyDouglas Gregor2009-06-261-0/+2
| | | | llvm-svn: 74285
* dot graph viewing is apparently not using SDNode::print_details, this is bad,Chris Lattner2009-06-261-0/+7
| | | | | | but in the meantime lets print targetflags on node labels. llvm-svn: 74274
* propagate target operand flags from dag nodes into MachineOperands.Chris Lattner2009-06-261-4/+8
| | | | llvm-svn: 74273
* fit in 80 colsChris Lattner2009-06-261-5/+4
| | | | llvm-svn: 74270
* Remove debug info anchors - llvm.dbg.compile_units, llvm.dbg.subprogramsDevang Patel2009-06-262-94/+28
| | | | | | and llvm.dbg.global_variables. llvm-svn: 74251
* Simplify.Devang Patel2009-06-254-22/+12
| | | | llvm-svn: 74215
* add targetflags to jump tables and constant pool entries.Chris Lattner2009-06-251-6/+24
| | | | llvm-svn: 74204
* allow setting target operand flags on TargetGlobalAddress nodes.Chris Lattner2009-06-251-6/+19
| | | | llvm-svn: 74203
* start bringing targetoperand flags into isel, first up, ExternalSymbol.Chris Lattner2009-06-251-7/+13
| | | | llvm-svn: 74199
* Provide guards for this shared structure. I'm not sure this actually needsOwen Anderson2009-06-251-3/+8
| | | | | | | | to be shared, but how/where to privatize it is not immediately clear to me. If any SelectionDAG experts see a better solution, please share! llvm-svn: 74180
* Privatize some more debug-related static data.Owen Anderson2009-06-251-2/+2
| | | | llvm-svn: 74179
* Support Constant Pool SectionsBruno Cardoso Lopes2009-06-255-11/+111
| | | | | | Add section symbols to the symbol table llvm-svn: 74170
* My guess is that RegInfo should only call the Allocator.Deallocator if it's notBill Wendling2009-06-251-7/+10
| | | | | | null. llvm-svn: 74147
* Now with EVEN FEWER statics!Owen Anderson2009-06-251-28/+0
| | | | llvm-svn: 74143
* Fewer static variables, part 3 of many.Owen Anderson2009-06-241-2/+2
| | | | llvm-svn: 74140
* Down with _even more_ statics!Owen Anderson2009-06-242-2/+5
| | | | llvm-svn: 74137
* Down with statics!Owen Anderson2009-06-241-2/+4
| | | | llvm-svn: 74134
OpenPOWER on IntegriCloud