summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Identify when a lexical scope is split in to multiple instruction ranges. ↵Devang Patel2010-04-272-214/+350
| | | | | | | | Emit such ranges using DW_AT_ranges. This patch fixes bug (PR6894) introduced by previous version of this patch. llvm-svn: 102454
* Do not count kill, implicit_def instructions as printed instructions.Evan Cheng2010-04-271-4/+4
| | | | llvm-svn: 102453
* round zero-byte .zerofill directives up to 1 byte. ThisChris Lattner2010-04-271-0/+2
| | | | | | | should fix some "g++.dg-struct-layout-1" failures, rdar://7886017 llvm-svn: 102421
* Revert a small part of 102372; this fixes at least oneDale Johannesen2010-04-271-0/+5
| | | | | | | | of the dbg testsuite regressions. I don't think this is really the right fix; this change exposed an existing problem upstream somewhere. llvm-svn: 102410
* add a comment in verbose-asm mode indicating why a noop is being generated.Chris Lattner2010-04-261-2/+3
| | | | llvm-svn: 102401
* on darwin empty functions need to codegen into something of non-zero length,Chris Lattner2010-04-261-3/+9
| | | | | | | | | | | otherwise labels get incorrectly merged. We handled this by emitting a ".byte 0", but this isn't correct on thumb/arm targets where the text segment needs to be a multiple of 2/4 bytes. Handle this by emitting a noop. This is more gross than it should be because arm/ppc are not fully mc'ized yet. This fixes rdar://7908505 llvm-svn: 102400
* Avoid adding a null MD node operand, which crashes with "-debug" when tryingBob Wilson2010-04-261-1/+2
| | | | | | to print the operand. llvm-svn: 102395
* Use DW_AT_entry_pc instead of DW_AT_low_pc/DW_AT_high_pc pair. This ↵Devang Patel2010-04-261-3/+3
| | | | | | simplifies debug range entries. llvm-svn: 102394
* Remove crufty comments.Dale Johannesen2010-04-261-5/+0
| | | | llvm-svn: 102380
* Add DBG_VALUE handling for byval parameters; thisDale Johannesen2010-04-263-27/+84
| | | | | | | produces a comment on targets that support it, but the Dwarf writer is not hooked up yet. llvm-svn: 102372
* Insert dbg_value instructions for function entry block liveins (i.e. ↵Evan Cheng2010-04-261-1/+30
| | | | | | function arguments). llvm-svn: 102368
* fix PR6921 a different way. Intead of increasing theChris Lattner2010-04-261-1/+9
| | | | | | | | alignment of globals with a specified alignment, we fix common variables to obey their alignment. Add a comment explaining why this behavior is important. llvm-svn: 102365
* Re-enable 102323 with fix: do not update dbg_value's with incorrect frame ↵Evan Cheng2010-04-261-20/+17
| | | | | | indices when the live interval are being re-materialized. llvm-svn: 102361
* Revert r102300/102301, which serious broke objc apps.Chris Lattner2010-04-261-3/+3
| | | | llvm-svn: 102359
* Update MachineSSAUpdater with the same changes I made for the IR-levelBob Wilson2010-04-261-122/+428
| | | | | | | SSAUpdater. I'm going to try to refactor this to share most of the code between them. llvm-svn: 102353
* Temporary disable spiller modifying dbg_value. It's breaking build.Evan Cheng2010-04-261-0/+5
| | | | llvm-svn: 102327
* - Move TargetLowering::EmitTargetCodeForFrameDebugValue to TargetInstrInfo ↵Evan Cheng2010-04-264-19/+35
| | | | | | | | and rename it to emitFrameIndexDebugValue. - Teach spiller to modify DBG_VALUE instructions to reference spill slots. llvm-svn: 102323
* Stop abusing EmitInstrWithCustomInserter for target-dependentDale Johannesen2010-04-251-9/+8
| | | | | | | | form of DEBUG_VALUE, as it doesn't have reasonable default behavior for unsupported targets. Add a new hook instead. No functional change. llvm-svn: 102320
* Add comment re byval args. Doesn't actually work this way yet.Dale Johannesen2010-04-251-1/+3
| | | | | | xs llvm-svn: 102316
* Fix PR6921: globals were not getting correctly rounded up to theirChris Lattner2010-04-251-3/+3
| | | | | | | preferred alignment unless they were common or some other special case. llvm-svn: 102300
* When a load operand is promoted to an extload, replace other uses with uses ↵Evan Cheng2010-04-241-30/+67
| | | | | | of extload result truncated. llvm-svn: 102236
* Apply a fix for a vector setcc dagcombine from Jan Sjodin. NoDan Gohman2010-04-241-1/+2
| | | | | | testcase yet, as the testcase now fails downstream. llvm-svn: 102228
* Code refactoring.Evan Cheng2010-04-231-11/+12
| | | | llvm-svn: 102202
* Move FastISel's HandlePHINodesInSuccessorBlocks call down into FastISelDan Gohman2010-04-232-14/+6
| | | | | | itself too. llvm-svn: 102176
* Revert 102135, 102129, 102127, 102106, 102104, 102102, 102012, 102004,Dan Gohman2010-04-232-375/+211
| | | | | | | because 102004 causes codegen to emit invalid assembly on at least x86_64-unknown-gnu-linux. llvm-svn: 102155
* Add comment.Devang Patel2010-04-221-0/+5
| | | | llvm-svn: 102129
* Sink SelectionDAGBuilder's HandlePHINodesInSuccessorBlocks downDan Gohman2010-04-223-15/+7
| | | | | | into SelectionDAGBuilder itself. llvm-svn: 102128
* Adjust debug range offsets for isWeakForLinker() functions.Devang Patel2010-04-222-6/+29
| | | | llvm-svn: 102127
* Move HandlePHINodesInSuccessorBlocks functions out of SelectionDAGISelDan Gohman2010-04-224-81/+86
| | | | | | and into SelectionDAGBuilder and FastISel. llvm-svn: 102123
* - It's not safe to promote rotates (at least not trivially).Evan Cheng2010-04-221-25/+46
| | | | | | - Some code refactoring. llvm-svn: 102111
* Fix a comment.Dan Gohman2010-04-221-1/+1
| | | | llvm-svn: 102110
* Move PHINodesToUpdate out of SelectionDAGBuilder and intoDan Gohman2010-04-224-36/+44
| | | | | | | | | FunctionLoweringInfo, as it isn't SelectionDAG-specific. This isn't completely natural, as PHI node state is not per-function but rather per-basic-block, however there's currently no other convenient per-basic-block state to group it with. llvm-svn: 102109
* Rename InsnAfterLabelMap and InsnBeforeLabelMap.Devang Patel2010-04-222-14/+14
| | | | llvm-svn: 102106
* Keep track of MCSymbol used to mark beginning of a function.Devang Patel2010-04-222-3/+6
| | | | llvm-svn: 102104
* At this point Start and End are not null.Devang Patel2010-04-221-5/+2
| | | | llvm-svn: 102102
* Run LiveVariables instead of computing liveness locally in -regalloc=fast.Jakob Stoklund Olesen2010-04-211-177/+2
| | | | | | | | | | | This actually makes everything slower, but the plan is to have isel add <kill> flags the way it is already adding <dead> flags. Then LiveVariables can be removed again. When ignoring the time spent in LiveVariables, -regalloc=fast is now twice as fast as -regalloc=local. llvm-svn: 102034
* Do not try to optimize a copy that has already been marked for deletion.Evan Cheng2010-04-211-1/+2
| | | | llvm-svn: 102027
* Add command line option to disable debug info printing in .s file. This ↵Devang Patel2010-04-211-0/+6
| | | | | | option does not impact debug info generation and preservation through earlier compile starges. llvm-svn: 102012
* Add fast register allocator, enabled with -regalloc=fast.Jakob Stoklund Olesen2010-04-212-0/+1108
| | | | | | | | | | | | | So far this is just a clone of -regalloc=local that has been lobotomized to run 25% faster. It drops the least-recently-used calculations, and is just plain stupid when it runs out of registers. The plan is to make this go even faster for -O0 by taking advantage of the short live intervals in unoptimized code. It should not be necessary to calculate liveness when most virtual registers are killed 2-3 instructions after they are born. llvm-svn: 102006
* Identify when a lexical scope is split in to multiple instruction ranges. ↵Devang Patel2010-04-212-191/+321
| | | | | | Emit such ranges using DW_AT_ranges. llvm-svn: 102004
* Implement -disable-non-leaf-fp-elim which disable frame pointer eliminationEvan Cheng2010-04-211-1/+1
| | | | | | | optimization for non-leaf functions. This will be hooked up to gcc's -momit-leaf-frame-pointer option. rdar://7886181 llvm-svn: 101984
* Add more const qualifiers on TargetMachine and friends.Dan Gohman2010-04-212-2/+3
| | | | llvm-svn: 101977
* Update CMakeLists.txt.Dan Gohman2010-04-211-0/+1
| | | | llvm-svn: 101976
* Move several SelectionDAG-independent utility functions out of theDan Gohman2010-04-214-310/+287
| | | | | | SelectionDAG directory and into a new Analysis.cpp file. llvm-svn: 101975
* - Clean up some crappy code which deals with coalescing of copies which look atEvan Cheng2010-04-212-54/+73
| | | | | | | extract_subreg / insert_subreg, etc. - Add support for more aggressive insert_subreg coalescing. llvm-svn: 101971
* Rewrite machine cse to avoid recursion.Evan Cheng2010-04-211-11/+85
| | | | llvm-svn: 101964
* Add another variant of this test which found a place whereDan Gohman2010-04-211-1/+2
| | | | | | | CodeGen's ComputeMaskedBits was being over-conservative when computing bits for an ADD. llvm-svn: 101963
* Because of the EMMS problem, right now we have to supportDale Johannesen2010-04-201-1/+1
| | | | | | | | | | | user-defined operations that use MMX register types, but the compiler shouldn't generate them on its own. This adds a Synthesizable abstraction to represent this, and changes the vector widening computation so it won't produce MMX types. (The motivation is to remove noise from the ABI compatibility part of the gcc test suite, which has some breakage right now.) llvm-svn: 101951
* When MachineLICM is hoisting a physical register after regalloc, make sure theJakob Stoklund Olesen2010-04-201-4/+17
| | | | | | | | | | | register is not killed in the loop. This fixes 188.ammp on ARM where the post-ra scheduler would grab a register that looked available but wasn't. A testcase would be huge and fragile, sorry. llvm-svn: 101930
* Typo.Evan Cheng2010-04-201-1/+1
| | | | llvm-svn: 101914
OpenPOWER on IntegriCloud