aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2010-04-28While lowering dbg_declare, emit DBG_VALUE machine instruction if alloca ↵Devang Patel
matching llvm.dbg.declare intrinsic is missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102513 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-28Recompute kill flags from live intervals after coalescing instead of trying toJakob Stoklund Olesen
update them. Computing kill flags is notoriously difficult, and the coalescer would get it wrong sometimes, and it would completely skip physical registers. Now we simply remove kill flags based on the live intervals after coalescing. This is a few percent slower, but now we get correct kill flags for physical registers after coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102510 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-28Try operation promotion only if regular dag combine and target-specific ones ↵Evan Cheng
failed to do anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102492 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-28Emit debug info for byval parameters.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102486 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-28further simplify EmitAlignment by eliminating the Chris Lattner
ForcedAlignBits argument, tweaking the single client of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102484 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-28remove a dead argument to EmitAlignment.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102483 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-28remove some default arguments to EmitAlignment.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102482 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-28Refactor. Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102481 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-27Use isReg(), isImm() and isFPImm().Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102470 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-27Check operand type first.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102468 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-27Ignore DBG_VALUE instructions that points to undef values.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102463 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-27- When legal, promote a load to zextload rather than ext load.Evan Cheng
- Catch more further dag combine opportunities as result of operand promotion, e.g. (i32 anyext (i16 trunc (i32 x))) -> (i32 x) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102455 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-27Identify when a lexical scope is split in to multiple instruction ranges. ↵Devang Patel
Emit such ranges using DW_AT_ranges. This patch fixes bug (PR6894) introduced by previous version of this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102454 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-27Do not count kill, implicit_def instructions as printed instructions.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102453 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-27round zero-byte .zerofill directives up to 1 byte. ThisChris Lattner
should fix some "g++.dg-struct-layout-1" failures, rdar://7886017 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102421 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-27Revert a small part of 102372; this fixes at least oneDale Johannesen
of the dbg testsuite regressions. I don't think this is really the right fix; this change exposed an existing problem upstream somewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102410 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26add a comment in verbose-asm mode indicating why a noop is being generated.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102401 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26on darwin empty functions need to codegen into something of non-zero length,Chris Lattner
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102400 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26Avoid adding a null MD node operand, which crashes with "-debug" when tryingBob Wilson
to print the operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102395 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26Use DW_AT_entry_pc instead of DW_AT_low_pc/DW_AT_high_pc pair. This ↵Devang Patel
simplifies debug range entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102394 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26Remove crufty comments.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102380 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26Add DBG_VALUE handling for byval parameters; thisDale Johannesen
produces a comment on targets that support it, but the Dwarf writer is not hooked up yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102372 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26Insert dbg_value instructions for function entry block liveins (i.e. ↵Evan Cheng
function arguments). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102368 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26fix PR6921 a different way. Intead of increasing theChris Lattner
alignment of globals with a specified alignment, we fix common variables to obey their alignment. Add a comment explaining why this behavior is important. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102365 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26Re-enable 102323 with fix: do not update dbg_value's with incorrect frame ↵Evan Cheng
indices when the live interval are being re-materialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102361 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26Revert r102300/102301, which serious broke objc apps.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102359 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26Update MachineSSAUpdater with the same changes I made for the IR-levelBob Wilson
SSAUpdater. I'm going to try to refactor this to share most of the code between them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102353 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26Temporary disable spiller modifying dbg_value. It's breaking build.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102327 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26- Move TargetLowering::EmitTargetCodeForFrameDebugValue to TargetInstrInfo ↵Evan Cheng
and rename it to emitFrameIndexDebugValue. - Teach spiller to modify DBG_VALUE instructions to reference spill slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102323 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-25Stop abusing EmitInstrWithCustomInserter for target-dependentDale Johannesen
form of DEBUG_VALUE, as it doesn't have reasonable default behavior for unsupported targets. Add a new hook instead. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102320 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-25Add comment re byval args. Doesn't actually work this way yet.Dale Johannesen
xs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102316 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-25Fix PR6921: globals were not getting correctly rounded up to theirChris Lattner
preferred alignment unless they were common or some other special case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102300 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-24When a load operand is promoted to an extload, replace other uses with uses ↵Evan Cheng
of extload result truncated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102236 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-24Apply a fix for a vector setcc dagcombine from Jan Sjodin. NoDan Gohman
testcase yet, as the testcase now fails downstream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102228 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-23Code refactoring.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102202 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-23Move FastISel's HandlePHINodesInSuccessorBlocks call down into FastISelDan Gohman
itself too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102176 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-23Revert 102135, 102129, 102127, 102106, 102104, 102102, 102012, 102004,Dan Gohman
because 102004 causes codegen to emit invalid assembly on at least x86_64-unknown-gnu-linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102155 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22Add comment.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102129 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22Sink SelectionDAGBuilder's HandlePHINodesInSuccessorBlocks downDan Gohman
into SelectionDAGBuilder itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102128 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22Adjust debug range offsets for isWeakForLinker() functions.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102127 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22Move HandlePHINodesInSuccessorBlocks functions out of SelectionDAGISelDan Gohman
and into SelectionDAGBuilder and FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102123 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22- It's not safe to promote rotates (at least not trivially).Evan Cheng
- Some code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102111 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22Fix a comment.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102110 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22Move PHINodesToUpdate out of SelectionDAGBuilder and intoDan Gohman
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102109 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22Rename InsnAfterLabelMap and InsnBeforeLabelMap.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102106 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22Keep track of MCSymbol used to mark beginning of a function.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102104 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22At this point Start and End are not null.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102102 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-21Run LiveVariables instead of computing liveness locally in -regalloc=fast.Jakob Stoklund Olesen
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102034 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-21Do not try to optimize a copy that has already been marked for deletion.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102027 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-21Add command line option to disable debug info printing in .s file. This ↵Devang Patel
option does not impact debug info generation and preservation through earlier compile starges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102012 91177308-0d34-0410-b5e6-96231b3b80d8