summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* - Change TargetInstrInfo::reMaterialize to pass in TargetRegisterInfo.Evan Cheng2009-11-1411-17/+33
| | | | | | | | - If destination is a physical register and it has a subreg index, use the sub-register instead. This fixes PR5423. llvm-svn: 88745
* Add an option for running GVN with redundant load processing disabled.Dan Gohman2009-11-141-9/+23
| | | | llvm-svn: 88742
* Fix PR5412: Fix an inverted check and another missing sub-register check.Evan Cheng2009-11-141-9/+30
| | | | llvm-svn: 88738
* Enable the tail call optimization when the caller returns undef.Dan Gohman2009-11-141-0/+4
| | | | llvm-svn: 88737
* When expanding t2STRDi8 r, r to two stores, add kill markers correctly.Evan Cheng2009-11-141-0/+7
| | | | llvm-svn: 88734
* Fix bug in -split-phi-edges.Jakob Stoklund Olesen2009-11-141-3/+14
| | | | | | | | | | When splitting an edge after a machine basic block with fall-through, we forgot to insert a jump instruction. Fix this by calling updateTerminator() on the fall-through block when relevant. Also be more precise in PHIElimination::isLiveIn. llvm-svn: 88728
* Update MachineDominator informationJakob Stoklund Olesen2009-11-141-6/+9
| | | | llvm-svn: 88727
* Added an API to the SlotIndexes pass to allow new instructions to be ↵Lang Hames2009-11-143-89/+31
| | | | | | | | inserted into the numbering. PreAllocSplitting is now using this API to insert code. llvm-svn: 88725
* Fix PR5411. Bug in UpdateKills. A reg def partially define its super-registers.Evan Cheng2009-11-131-0/+4
| | | | llvm-svn: 88719
* Remove extraneous commit.Eric Christopher2009-11-131-5/+0
| | | | llvm-svn: 88716
* Print out something, even if it's non-parseable later when we'veEric Christopher2009-11-131-2/+7
| | | | | | got ghost linkage. It's better than aborting. llvm-svn: 88715
* Fix PHIElimination optimization that uses MBB->getBasicBlock.Jakob Stoklund Olesen2009-11-132-34/+23
| | | | | | | | | | | The BasicBlock associated with a MachineBasicBlock does not necessarily correspond to the code in the MBB. Don't insert a new IR BasicBlock when splitting critical edges. We are not supposed to modify the IR during codegen, and we should be able to do just fine with a NULL BB. llvm-svn: 88707
* Add MachineFunction::verify() to call the machine code verifier directly.Jakob Stoklund Olesen2009-11-131-0/+4
| | | | llvm-svn: 88706
* The instruction pointer %RIP is a reserved register on x86_64.Jakob Stoklund Olesen2009-11-131-0/+5
| | | | llvm-svn: 88705
* Fix polarity of a CFG check in machine verifier.Jakob Stoklund Olesen2009-11-131-5/+14
| | | | llvm-svn: 88704
* Use .data() instead of .c_str() when nul-termination is not needed.Dan Gohman2009-11-131-1/+1
| | | | llvm-svn: 88703
* Move DebugInfo checks into EmitComments and remove them fromDavid Greene2009-11-1313-27/+35
| | | | | | | | target-specific AsmPrinters. Not all comments need DebugInfo. Re-enable the line numbers comment test. llvm-svn: 88697
* When optimizing for size, don't tail-merge unless it's likely to be aDan Gohman2009-11-131-9/+12
| | | | | | | | | | code-size win, and not when it's only likely to be code-size neutral, such as when only a single instruction would be eliminated and a new branch would be required. This fixes rdar://7392894. llvm-svn: 88692
* Fix PR5410: LiveVariables lost subreg def:Evan Cheng2009-11-131-1/+7
| | | | | | | | | | | | | | D0<def,dead> = ... ... = S0<use, kill> S0<def> = ... ... D0<def> = The first D0 def is correctly marked dead, however, livevariables should have added an implicit def of S0 or we end up with a use without a def. llvm-svn: 88690
* Allow target to specify regclass for which antideps will only be broken ↵David Goodwin2009-11-138-41/+118
| | | | | | along the critical path. llvm-svn: 88682
* Support fp64 immediate zero, this fixes only part of PR5445 Bruno Cardoso Lopes2009-11-132-3/+22
| | | | | | because the testcase is triggering one more bug. llvm-svn: 88674
* Don't let a noalias difference disrupt the tailcall optimization.Dan Gohman2009-11-131-3/+4
| | | | llvm-svn: 88672
* Distinguish "a," from "a". The first one splits into "a" + "" and the second ↵Rafael Espindola2009-11-131-3/+5
| | | | | | | | one into "a" + 0. llvm-svn: 87084
* Revert r87059 for now. It is failing clang tests.Devang Patel2009-11-131-3/+11
| | | | llvm-svn: 87070
* Ignore nameless variables.Devang Patel2009-11-131-1/+3
| | | | llvm-svn: 87069
* Switch to smallvector. Also fix issue with using unsigend for MaxSplit.Rafael Espindola2009-11-131-3/+4
| | | | llvm-svn: 87068
* Adjust isConstantSplat to allow for big-endian targets.Dale Johannesen2009-11-132-6/+9
| | | | | | PPC is such a target; make it work. llvm-svn: 87060
* Remove unnecessary llvm.dbg.declare bitcastVictor Hernandez2009-11-131-11/+3
| | | | llvm-svn: 87059
* Add a new split method to StringRef that puts the substrings in a vector.Rafael Espindola2009-11-131-0/+19
| | | | llvm-svn: 87058
* Block renumberingJim Grosbach2009-11-131-3/+1
| | | | llvm-svn: 87056
* use lower case for readabilityJim Grosbach2009-11-131-1/+1
| | | | llvm-svn: 87054
* Fix a bootstrap failure.David Greene2009-11-132-24/+63
| | | | | | | | Provide special isLoadFromStackSlotPostFE and isStoreToStackSlotPostFE interfaces to explicitly request checking for post-frame ptr elimination operands. This uses a heuristic so it isn't reliable for correctness. llvm-svn: 87047
* Re-enable this code, since redundant PHIs are now being better nuked.Owen Anderson2009-11-121-4/+0
| | | | llvm-svn: 87042
* Simplify code a bitBill Wendling2009-11-121-4/+3
| | | | llvm-svn: 87040
* Refactor code that checks if it's a call to a "nounwind" function.Bill Wendling2009-11-122-31/+40
| | | | llvm-svn: 87036
* use isInstructionTriviallyDead, as pointed out by DuncanChris Lattner2009-11-121-3/+3
| | | | llvm-svn: 87035
* Do some cleanups suggested by Chris.David Greene2009-11-121-0/+4
| | | | llvm-svn: 87034
* Set the ReloadReuse AsmPrinter flag where appropriate.David Greene2009-11-121-0/+3
| | | | llvm-svn: 87030
* Make the MachineFunction argument of getFrameRegister const.David Greene2009-11-1217-18/+19
| | | | | | This also fixes a build error. llvm-svn: 87027
* Add hasLoadFromStackSlot and hasStoreToStackSlot to return whether aDavid Greene2009-11-122-12/+79
| | | | | | | | | | | | | | | machine instruction loads or stores from/to a stack slot. Unlike isLoadFromStackSlot and isStoreFromStackSlot, the instruction may be something other than a pure load/store (e.g. it may be an arithmetic operation with a memory operand). This helps AsmPrinter determine when to print a spill/reload comment. This is only a hint since we may not be able to figure this out in all cases. As such, it should not be relied upon for correctness. Implement for X86. Return false by default for other architectures. llvm-svn: 87026
* Fix -Asserts warning.Daniel Dunbar2009-11-121-2/+1
| | | | llvm-svn: 87024
* If there's more than one function operand to a call instruction, be conservativeBill Wendling2009-11-121-1/+12
| | | | | | | | | and don't assume that the call doesn't throw. It would be nice if there were a way to determine which is the callee and which is a parameter. In practice, the architecture we care about normally only have one operand for a call instruction (x86 and arm). llvm-svn: 87023
* Add a bool flag to StackObjects telling whether they reference spillDavid Greene2009-11-1227-93/+127
| | | | | | | | | | | | | slots. The AsmPrinter will use this information to determine whether to print a spill/reload comment. Remove default argument values. It's too easy to pass a wrong argument value when multiple arguments have default values. Make everything explicit to trap bugs early. Update all targets to adhere to the new interfaces.. llvm-svn: 87022
* Add compare_lower and equals_lower methods to StringRef. Switch all users ofBenjamin Kramer2009-11-123-5/+24
| | | | | | StringsEqualNoCase (from StringExtras.h) to it. llvm-svn: 87020
* Make FixedStackPseudoSourceValue a first-class PseudoSourceValue byDavid Greene2009-11-121-23/+2
| | | | | | | | making it visible to clients and adding LLVM-style cast capability. This will be used by AsmPrinter to determine when to emit spill comments for an instruction. llvm-svn: 87019
* Rename registers to break output dependencies in addition to anti-dependencies.David Goodwin2009-11-124-10/+30
| | | | llvm-svn: 87015
* "Attach debug info with llvm instructions" mode was enabled a month ago. Now ↵Devang Patel2009-11-127-430/+16
| | | | | | make it permanent and remove old way of inserting intrinsics to encode debug info for line number and scopes. llvm-svn: 87014
* Update TB[BH] layout optimization. Add support for moving the target blockJim Grosbach2009-11-121-33/+115
| | | | | | | to directly follow the jump table. Move the layout changes to prior to any constant island handling. llvm-svn: 86999
* fix crash in my previous patchNuno Lopes2009-11-121-1/+1
| | | | llvm-svn: 86987
* implement shl, ashr, and lshr methods. shl is not fully implemented as it is ↵Nuno Lopes2009-11-121-0/+37
| | | | | | quite tricky. llvm-svn: 86986
OpenPOWER on IntegriCloud