aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Add a pass to overlay pic16 data sections for function frame and automaticSanjiv Gupta2009-10-2111-6/+341
| | | | | | | | | | variables. This pass can be invoked by llvm-ld or opt to traverse over the call graph to detect what function frames and their automatic variables can be overlaid. Currently this builds an archive , but needs to be changed to a loadable module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84753 91177308-0d34-0410-b5e6-96231b3b80d8
* Match more patterns to movt.Evan Cheng2009-10-214-1/+42
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84751 91177308-0d34-0410-b5e6-96231b3b80d8
* Need a comma after imp-use.Evan Cheng2009-10-211-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84749 91177308-0d34-0410-b5e6-96231b3b80d8
* De-bork CMake buildDouglas Gregor2009-10-211-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84744 91177308-0d34-0410-b5e6-96231b3b80d8
* make GVN work better when TD is not around:Chris Lattner2009-10-211-15/+21
| | | | | | | | | | | | | | | | | | | "In the existing code, if the load and the value to replace it with are of different types *and* target data is available, it tries to use the target data to coerce the replacement value to the type of the load. Otherwise, it skips all effort to handle the type mismatch and just feeds the wrongly-typed replacement value to replaceAllUsesWith, which triggers an assertion. The patch replaces it with an outer if checking for type mismatch, and an inner if-else that checks whether target data is available and, if not, returns false rather than trying to replace the load." Patch by Kenneth Uildriks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84739 91177308-0d34-0410-b5e6-96231b3b80d8
* tidyChris Lattner2009-10-211-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84738 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some more NEON instruction encoding problems.Bob Wilson2009-10-211-6/+6
| | | | | | | Thanks to Johnny Chen for discovering the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84732 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not remove dead metadata for now.Devang Patel2009-10-211-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84731 91177308-0d34-0410-b5e6-96231b3b80d8
* Leave some NEON instruction encoding bits unspecified instead of settingBob Wilson2009-10-212-198/+247
| | | | | | | | a default value of zero. This is important for decoding the instructions. Patch by Johnny Chen, with some changes from me, too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84730 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r84658 and r84691. They were causing llvm-gcc bootstrap to fail.Dan Gohman2009-10-211-489/+319
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84727 91177308-0d34-0410-b5e6-96231b3b80d8
* IPSCCP is missing stuff.Chris Lattner2009-10-211-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84725 91177308-0d34-0410-b5e6-96231b3b80d8
* Delete the MacOSJITEventListener per echristo's request. It was disabled byJeffrey Yasskin2009-10-211-172/+0
| | | | | | | default and didn't work anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84720 91177308-0d34-0410-b5e6-96231b3b80d8
* Add noteAnton Korobeynikov2009-10-211-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84713 91177308-0d34-0410-b5e6-96231b3b80d8
* Be crazy and assert in case of unsupported modifier passed.Anton Korobeynikov2009-10-211-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84712 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle external symbolsAnton Korobeynikov2009-10-212-2/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84711 91177308-0d34-0410-b5e6-96231b3b80d8
* Distinguish between pcrel imm operands and 'normal' ones. Fix fixes gross ↵Anton Korobeynikov2009-10-214-9/+23
| | | | | | weirdness of asmprinting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84710 91177308-0d34-0410-b5e6-96231b3b80d8
* Add basic block operands & jump kindsAnton Korobeynikov2009-10-215-16/+43
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84709 91177308-0d34-0410-b5e6-96231b3b80d8
* Ignore all implicit reg operandsAnton Korobeynikov2009-10-211-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84708 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a workaround for different memops prefixesAnton Korobeynikov2009-10-211-3/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84707 91177308-0d34-0410-b5e6-96231b3b80d8
* Checkpoint MCInst printer. We (almostly) able to print global / JT / ↵Anton Korobeynikov2009-10-215-11/+106
| | | | | | constpool entries git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84706 91177308-0d34-0410-b5e6-96231b3b80d8
* Add simple operand printing stuffAnton Korobeynikov2009-10-212-4/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84704 91177308-0d34-0410-b5e6-96231b3b80d8
* Add experimental MSP430 MCInstLowering stuffAnton Korobeynikov2009-10-214-1/+155
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84703 91177308-0d34-0410-b5e6-96231b3b80d8
* Wire up MSP430 printMCInst() methodAnton Korobeynikov2009-10-211-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84702 91177308-0d34-0410-b5e6-96231b3b80d8
* Add MSP430 InstPrinter stubAnton Korobeynikov2009-10-213-0/+84
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84701 91177308-0d34-0410-b5e6-96231b3b80d8
* Use proper target dataAnton Korobeynikov2009-10-211-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84700 91177308-0d34-0410-b5e6-96231b3b80d8
* Respect src register allocation requirements when breaking ↵David Goodwin2009-10-201-17/+20
| | | | | | anti-dependencies. Remove some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84691 91177308-0d34-0410-b5e6-96231b3b80d8
* Cosmetic changes.Devang Patel2009-10-202-10/+10
| | | | | | | | | s/validName/isValidName/g s/with an Instruction/to an Instruction/g s/RegisterMDKind/registerMDKind/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84689 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix -Asserts warning.Daniel Dunbar2009-10-201-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84687 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix invalid for vector types fneg(bitconvert(x)) => bitconvert(x ^ sign)Anton Korobeynikov2009-10-201-4/+6
| | | | | | transform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84683 91177308-0d34-0410-b5e6-96231b3b80d8
* Oops. Backing out 84681 - needs to wait for the indexing patch.Lang Hames2009-10-201-54/+35
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84682 91177308-0d34-0410-b5e6-96231b3b80d8
* Added some debugging output to pre-alloc splitting.Lang Hames2009-10-201-35/+54
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84681 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix another place that calls Loop::contains a lot to construct a sortedDan Gohman2009-10-201-1/+4
| | | | | | | | | container of the blocks and do efficient lookups. This makes isLoopSimplifyForm much faster on large loops, fixing a significant compile-time issue in builds with assertions enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84673 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable by default while debuggingJim Grosbach2009-10-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84669 91177308-0d34-0410-b5e6-96231b3b80d8
* alternate fix for PR5258 which avoids worklist problems, with reduced testcase.Chris Lattner2009-10-201-11/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84667 91177308-0d34-0410-b5e6-96231b3b80d8
* add cmd line opt to disable frame index reuse for ARM and T2. debug aid.Jim Grosbach2009-10-201-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84664 91177308-0d34-0410-b5e6-96231b3b80d8
* Restore LoopUnswitch's block-oriented threshold. LoopUnswitch now checks bothDan Gohman2009-10-201-36/+27
| | | | | | | | | | the estimated code size and the number of blocks when deciding whether to do a non-trivial unswitch. This protects it from some very undesirable worst-case behavior on large numbers of loop-unswitchable conditions, such as in the testcase in PR5259. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84661 91177308-0d34-0410-b5e6-96231b3b80d8
* Checkpoint more aggressive anti-dependency breaking for post-ra scheduler.David Goodwin2009-10-201-310/+477
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84658 91177308-0d34-0410-b5e6-96231b3b80d8
* Better handle instructions that re-def a scratch registerJim Grosbach2009-10-201-9/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84657 91177308-0d34-0410-b5e6-96231b3b80d8
* Following r84485, add Defs = [EFLAGS] to the 32-bit lock instructions too.Dan Gohman2009-10-201-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84652 91177308-0d34-0410-b5e6-96231b3b80d8
* Move the Function*->allocated blocks map from the JITMemoryManager to theJeffrey Yasskin2009-10-202-34/+30
| | | | | | | | | | | | | | | | | JITEmitter. I'm gradually making Functions auto-remove themselves from the JIT when they're destroyed. In this case, the Function needs to be removed from the JITEmitter, but the map recording which Functions need to be removed lived behind the JITMemoryManager interface, which made things difficult. This patch replaces the deallocateMemForFunction(Function*) method with a pair of methods deallocateFunctionBody(void *) and deallocateExceptionTable(void *) corresponding to the two startFoo/endFoo pairs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84651 91177308-0d34-0410-b5e6-96231b3b80d8
* Register re-use for scavenged frame indices must check for re-deginitionJim Grosbach2009-10-201-0/+4
| | | | | | of the register in the instruction which kills the scavenged value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84641 91177308-0d34-0410-b5e6-96231b3b80d8
* Make TranslateX86CC return COND_INVALID instead of aborting when itDan Gohman2009-10-201-4/+15
| | | | | | | | | | | encounters an OEQ or UNE comparison, and update its callers to check for this return status and recover. This fixes a problem resulting from the LowerOperation hooks being called from LegalizeVectorOps, because LegalizeVectorOps only lowers vectors, so OEQ and UNE comparisons may still be at large. This fixes PR5092. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84640 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR5258, jump-threading creating invalid PHIs.Edwin Török2009-10-201-2/+10
| | | | | | | | When an incoming value for a PHI is updated, we must also updated all other incoming values for the same BB to match, otherwise we create invalid PHIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84638 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR4313: IPSCCP was not setting the lattice value for the invoke instructionEdwin Török2009-10-201-2/+4
| | | | | | | | | | | when the invoke had multiple return values: it set the lattice value only on the extractvalue. This caused the invoke's lattice value to remain the default (undefined), and later propagated to extractvalue's operand, which incorrectly introduces undefined behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84637 91177308-0d34-0410-b5e6-96231b3b80d8
* Random #include pruning.Benjamin Kramer2009-10-201-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84632 91177308-0d34-0410-b5e6-96231b3b80d8
* This file is replaeced by PIC16Section.h.Sanjiv Gupta2009-10-201-88/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84628 91177308-0d34-0410-b5e6-96231b3b80d8
* implement some more easy hooks.Chris Lattner2009-10-202-3/+34
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84614 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement some hooks, make printOperand abort if unknown modifiers areChris Lattner2009-10-202-9/+129
| | | | | | | present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84613 91177308-0d34-0410-b5e6-96231b3b80d8
* t2MOVi32imm is currently always lowered by the Thumb2ITBlockPass.Chris Lattner2009-10-201-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84611 91177308-0d34-0410-b5e6-96231b3b80d8
* Wire up the ARM MCInst printer, for llvm-mc.Daniel Dunbar2009-10-202-8/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84600 91177308-0d34-0410-b5e6-96231b3b80d8