Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | It's not safe to propagate implicit_def that defines part of a register. | Evan Cheng | 2010-05-10 | 1 | -0/+2 |
| | | | | llvm-svn: 103436 | ||||
* | Clear RegSequences vector after eliminating REG_SEQUENCE instructions. | Evan Cheng | 2010-05-10 | 1 | -0/+1 |
| | | | | llvm-svn: 103435 | ||||
* | Be careful with operand promotion. For a binary operation, the source ↵ | Evan Cheng | 2010-05-10 | 1 | -4/+10 |
| | | | | | | operands may be the same. PR7018. rdar://7939869. llvm-svn: 103419 | ||||
* | Re-defined valno is always valno even for partial re-def's. | Evan Cheng | 2010-05-10 | 1 | -2/+1 |
| | | | | llvm-svn: 103410 | ||||
* | Fix PR7096. When a block containing multiple defs is tail duplicated, the | Bob Wilson | 2010-05-10 | 1 | -1/+1 |
| | | | | | | | SSAUpdater for the value from the first def may see uses of undefined values, because the later defs will not have been updated yet. llvm-svn: 103407 | ||||
* | Add an assertion to catch attempts to access off the end of the array. | Duncan Sands | 2010-05-10 | 1 | -0/+2 |
| | | | | | | Based on a patch by Javier Martinez. llvm-svn: 103391 | ||||
* | Instead of just verifying compile unit, verify entire type, variable, ↵ | Devang Patel | 2010-05-07 | 1 | -11/+10 |
| | | | | | | namespace etc.. llvm-svn: 103327 | ||||
* | Remove DIGlobal. | Devang Patel | 2010-05-07 | 2 | -2/+2 |
| | | | | llvm-svn: 103325 | ||||
* | SDDbgValues are apparently not being legalized. Fix a symptom of the problem, | Dan Gohman | 2010-05-07 | 1 | -1/+7 |
| | | | | | | | and not the real problem itself, by dropping debug info for i128 values. rdar://7958162. llvm-svn: 103310 | ||||
* | Verify variable directly. | Devang Patel | 2010-05-07 | 2 | -3/+3 |
| | | | | llvm-svn: 103305 | ||||
* | add COFF support for COMDAT sections, patch by Nathan Jeffords! | Chris Lattner | 2010-05-07 | 1 | -4/+16 |
| | | | | llvm-svn: 103304 | ||||
* | Verify entire type descriptor not just tag. | Devang Patel | 2010-05-07 | 1 | -2/+2 |
| | | | | llvm-svn: 103303 | ||||
* | Fix PR 7087, and probably other things, by extending | Dale Johannesen | 2010-05-07 | 1 | -1/+11 |
| | | | | | | | | | getConstantFP to accept the two supported long double target types. This was not the original intent, but there are other places that assume this works and it's easy enough to do. llvm-svn: 103299 | ||||
* | Wrap const MDNode * inside DIDescriptor. | Devang Patel | 2010-05-07 | 2 | -55/+55 |
| | | | | llvm-svn: 103295 | ||||
* | Avoid DIDescriptor::getNode(). Use overloaded operators instead. | Devang Patel | 2010-05-07 | 2 | -66/+66 |
| | | | | llvm-svn: 103272 | ||||
* | switch MCSectionCOFF from a syntactic to semantic representation, | Chris Lattner | 2010-05-07 | 1 | -54/+115 |
| | | | | | | patch by Peter Housel! llvm-svn: 103267 | ||||
* | Revert r103133 and add testcase from PR7066. | Nick Lewycky | 2010-05-07 | 1 | -12/+2 |
| | | | | llvm-svn: 103233 | ||||
* | Transfer debug location information from PHI nodes to resulting | Dan Gohman | 2010-05-07 | 1 | -0/+8 |
| | | | | | | lowered copies. llvm-svn: 103228 | ||||
* | Print debug information for SDNodes. | Dan Gohman | 2010-05-07 | 1 | -0/+16 |
| | | | | llvm-svn: 103227 | ||||
* | Disable the new unknown-location code for now. It causes a major | Dan Gohman | 2010-05-07 | 1 | -14/+20 |
| | | | | | | | increase in the debug line info section, and it's causing regressions in a gdb testsuite. llvm-svn: 103226 | ||||
* | Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that it | Dan Gohman | 2010-05-06 | 12 | -40/+59 |
| | | | | | | doesn't have to guess. llvm-svn: 103194 | ||||
* | Add argument TargetRegisterInfo to loadRegFromStackSlot and storeRegToStackSlot. | Evan Cheng | 2010-05-06 | 7 | -25/+32 |
| | | | | llvm-svn: 103193 | ||||
* | 80 col violation. | Evan Cheng | 2010-05-06 | 1 | -2/+2 |
| | | | | llvm-svn: 103185 | ||||
* | Fixes a coalescer bug that caused llc to crash on 2009-11-30-LiveVariablesBug.ll | Evan Cheng | 2010-05-06 | 1 | -4/+16 |
| | | | | | | | | | | | with the fix in 103157. %reg1039:1<def> = VMOVS %S1<kill>, pred:14, pred:%reg0 is not coalescable since none of the super-registers of S1 are in reg1039's register class: DPR_VFP2. But it is still a legal copy instruction so it should not assert. llvm-svn: 103170 | ||||
* | Update LabelsBeforeInsn also, when creating unknown-position labels. | Dan Gohman | 2010-05-06 | 1 | -0/+5 |
| | | | | llvm-svn: 103145 | ||||
* | Fix PR7054 - Assertion `Symbol->isUndefined() && "Cannot define a symbol ↵ | Chris Lattner | 2010-05-06 | 1 | -1/+7 |
| | | | | | | | | | twice!"' failed. Users can write broken code that emits the same label twice with asm renaming, detect this and emit a fatal backend error instead of aborting. llvm-svn: 103140 | ||||
* | In bottom-up mode, defer the materialization of local constant values. | Dan Gohman | 2010-05-06 | 1 | -0/+11 |
| | | | | llvm-svn: 103139 | ||||
* | Add an "IsBottomUp" member function to FastISel, which will be used to | Dan Gohman | 2010-05-05 | 1 | -1/+2 |
| | | | | | | support a new bottom-up mode. llvm-svn: 103138 | ||||
* | Emit debug info for MachineInstrs with unknown debug locations, instead | Dan Gohman | 2010-05-05 | 1 | -19/+34 |
| | | | | | | | | of just letting them inherit the debug locations of adjacent instructions. Debug info should aim to be either accurate or absent. llvm-svn: 103135 | ||||
* | Fix PR6520. An earlyclobber physreg must not be allocated to anything else. | Jakob Stoklund Olesen | 2010-05-05 | 1 | -2/+12 |
| | | | | llvm-svn: 103133 | ||||
* | Use getValue() for PHINodes when direct NodeMap access does not work. | Devang Patel | 2010-05-05 | 1 | -1/+15 |
| | | | | llvm-svn: 103126 | ||||
* | Move REG_SEQUENCE removal to 2addr pass. | Evan Cheng | 2010-05-05 | 3 | -63/+68 |
| | | | | llvm-svn: 103109 | ||||
* | Teach liveintervalanalysis about virtual registers which are defined by ↵ | Evan Cheng | 2010-05-05 | 1 | -14/+37 |
| | | | | | | | | | | reg_sequence instructions that are formed by registers defined by distinct instructions. e.g. 80 %reg1041:6<def> = VSHRNv4i16 %reg1034<kill>, 12, pred:14, pred:%reg0 . . . 120 %reg1041:5<def> = VSHRNv4i16 %reg1039<kill>, 12, pred:14, pred:%reg0 llvm-svn: 103102 | ||||
* | Combine the implementations of the core part of the SSAUpdater and | Bob Wilson | 2010-05-04 | 1 | -437/+109 |
| | | | | | | MachineSSAUpdater to avoid duplicating all the code. llvm-svn: 103060 | ||||
* | Teach PHI elimination to remove REG_SEQUENCE instructions and update ↵ | Evan Cheng | 2010-05-04 | 3 | -0/+86 |
| | | | | | | | | | | | | | references of the source operands with references of the destination with subreg indices. e.g. %reg1029<def>, %reg1030<def> = VLD1q16 %reg1024<kill>, ... %reg1031<def> = REG_SEQUENCE %reg1029<kill>, 5, %reg1030<kill>, 6 => %reg1031:5<def>, %reg1031:6<def> = VLD1q16 %reg1024<kill>, ... PHI elimination now does more than phi elimination. It is really a de-SSA pass. llvm-svn: 103039 | ||||
* | Rename variables for consistency. | Evan Cheng | 2010-05-04 | 1 | -10/+11 |
| | | | | llvm-svn: 103013 | ||||
* | Set DW_AT_APPLE_omit_frame_ptr in endFunction() where MachineFunction is ↵ | Devang Patel | 2010-05-04 | 1 | -4/+6 |
| | | | | | | available all the time. llvm-svn: 103001 | ||||
* | Instruction selection optimizations may have moved the def of a function ↵ | Evan Cheng | 2010-05-04 | 1 | -1/+2 |
| | | | | | | argument out of the entry block. rdar://7937489 llvm-svn: 102993 | ||||
* | Teach scheduler about REG_SEQUENCE. | Evan Cheng | 2010-05-04 | 2 | -2/+44 |
| | | | | llvm-svn: 102984 | ||||
* | Re-enable isel kill flags, now that the local allocator is ignoring them. | Dan Gohman | 2010-05-04 | 1 | -4/+0 |
| | | | | llvm-svn: 102981 | ||||
* | Remove preexisting kill flags in RegAllocLocal, just like LiveVariables does. | Jakob Stoklund Olesen | 2010-05-03 | 1 | -1/+4 |
| | | | | | | | This should make it possible to start producing kill flags in isel without breaking stuff. llvm-svn: 102976 | ||||
* | Factor out FastISel's code for materializing constants and other values | Dan Gohman | 2010-05-03 | 1 | -1/+10 |
| | | | | | | | in registers into a separate function to de-couple it from the top-down-specific logic in getRegForValue. llvm-svn: 102975 | ||||
* | Check that subregisters don't have independent values in ↵ | Jakob Stoklund Olesen | 2010-05-03 | 1 | -3/+14 |
| | | | | | | | | RemoveCopyByCommutingDef(). This fixes PR6941. llvm-svn: 102970 | ||||
* | Reword a comment slightly. | Eric Christopher | 2010-05-03 | 1 | -1/+1 |
| | | | | llvm-svn: 102966 | ||||
* | Print basic block numbers in live interval debug output. Since the rest of the | Bob Wilson | 2010-05-03 | 1 | -1/+2 |
| | | | | | | | | debug output is showing machine instructions, the IR-level basic block names aren't very meaningful, and because multiple machine basic blocks may be derived from one IR-level BB, they're also not unique. llvm-svn: 102960 | ||||
* | Fix a bug which prevented tail merging of return instructions in | Dan Gohman | 2010-05-03 | 1 | -24/+5 |
| | | | | | | | | | | | | | | | | | | | | beneficial cases. See the changes in test/CodeGen/X86/tail-opts.ll and test/CodeGen/ARM/ifcvt2.ll for details. The fix is to change HashEndOfMBB to hash at most one instruction, instead of trying to apply heuristics about when it will be profitable to consider more than one instruction. The regular tail-merging heuristics are already prepared to handle the same cases, and they're more precise. Also, make test/CodeGen/ARM/ifcvt5.ll and test/CodeGen/Thumb2/thumb2-branch.ll slightly more complex so that they continue to test what they're intended to test. And, this eliminates the problem in test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll, the testcase from PR5204. Update it accordingly. llvm-svn: 102907 | ||||
* | Don't count debug info as instructions. This was | Dale Johannesen | 2010-05-01 | 1 | -1/+2 |
| | | | | | | | | preventing the emission of the NOP on Darwin for a function with no actual code. From timberwolfmc with TEST=optllcdbg. llvm-svn: 102843 | ||||
* | Insert ANY_EXTEND node instead of invalid truncate during DAG Combining (X & 1), | Anton Korobeynikov | 2010-05-01 | 1 | -1/+6 |
| | | | | | | when needed. This fixes PR7001 llvm-svn: 102838 | ||||
* | Remove the code for special-casing byval for fast-isel. SelectionDAG | Dan Gohman | 2010-05-01 | 2 | -21/+3 |
| | | | | | | | handles argument lowering anyway, so there's no need for special casing here. llvm-svn: 102828 | ||||
* | Re-disable kill flags, as there is more trouble. | Dan Gohman | 2010-05-01 | 1 | -0/+4 |
| | | | | llvm-svn: 102826 |