summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* simplify the hacks around jrcxz.Chris Lattner2010-09-061-4/+1
| | | | llvm-svn: 113167
* have tblgen detect when an instruction would have matched, butChris Lattner2010-09-061-34/+44
| | | | | | | | | | | | | failed because a subtarget feature was not enabled. Use this to remove a bunch of hacks from the X86AsmParser for rejecting things like popfl in 64-bit mode. Previously these hacks weren't needed, but were important to get a message better than "invalid instruction" when used in the wrong mode. This also fixes bugs where pushal would not be rejected correctly in 32-bit mode (just pusha). llvm-svn: 113166
* change MatchInstructionImpl to return an enum instead of bool.Chris Lattner2010-09-062-6/+6
| | | | llvm-svn: 113165
* have AsmMatcherEmitter.cpp produce the hunk of code that gets includedChris Lattner2010-09-063-20/+16
| | | | | | | into the middle of the class, and rework how the different sections of the generated file are conditionally included for simplicity. llvm-svn: 113163
* Redefine LOOP* instructions from I to Ii8PCRel as they take an i8 argument.Roman Divacky2010-09-061-3/+3
| | | | llvm-svn: 113158
* random cleanupsChris Lattner2010-09-061-9/+12
| | | | llvm-svn: 113157
* MCELF: Align symtab, relocation sections and section headers properly. Patch ↵Benjamin Kramer2010-09-061-12/+24
| | | | | | by Krister Wombell. llvm-svn: 113155
* compute the HasSSE3 bit correctly, patch by Nikolai Saoukh.Chris Lattner2010-09-061-9/+8
| | | | llvm-svn: 113147
* fix PR8067, an over-aggressive assertion in LICM.Chris Lattner2010-09-061-4/+4
| | | | llvm-svn: 113146
* cleanup some of the lifetime/invariant marker stuff, add a big fixme.Chris Lattner2010-09-061-6/+11
| | | | llvm-svn: 113144
* speed up -gvn 3.4% on the testcase in PR7023Chris Lattner2010-09-061-1/+1
| | | | llvm-svn: 113135
* Teach loop rotate to hoist trivially invariant instructionsChris Lattner2010-09-061-10/+27
| | | | | | | | | | | | | | | in the duplicated block instead of duplicating them. Duplicating them into the end of the loop and the preheader means that we got a phi node in the header of the loop, which prevented LICM from hoisting them. GVN would usually come around later and merge the duplicated instructions so we'd get reasonable output... except that anything dependent on the shoulda-been-hoisted value can't be hoisted. In PR5319 (which this fixes), a memory value didn't get promoted. llvm-svn: 113134
* pull a simple method out of LICM into a new Chris Lattner2010-09-062-22/+11
| | | | | | | | | | Loop::hasLoopInvariantOperands method. Remove a useless and confusing Loop::isLoopInvariant(Instruction) method, which didn't do what you thought it did. No functionality change. llvm-svn: 113133
* remove some dead code. t2addrmode_imm8s4 is never used in a Chris Lattner2010-09-052-32/+1
| | | | | | pattern, so there is no need to define a matching function. llvm-svn: 113122
* cleanups.Chris Lattner2010-09-051-22/+17
| | | | llvm-svn: 113119
* add a comment about where this should eventually move.Chris Lattner2010-09-051-0/+7
| | | | llvm-svn: 113117
* update this.Chris Lattner2010-09-051-10/+29
| | | | llvm-svn: 113116
* more cleanupsChris Lattner2010-09-051-52/+38
| | | | llvm-svn: 113115
* Change lower atomic pass to use IntrinsicInst to simplify it a bit.Chris Lattner2010-09-052-41/+30
| | | | llvm-svn: 113114
* eliminate some non-obvious casts. UndefValue isa Constant.Chris Lattner2010-09-051-4/+4
| | | | llvm-svn: 113113
* fix PR8063, a crash in globalopt in the malloc analysis code.Chris Lattner2010-09-051-20/+29
| | | | llvm-svn: 113109
* Added initialisers for reduction rule counters.Lang Hames2010-09-051-0/+4
| | | | llvm-svn: 113108
* Fix warning reported by MSVC++ builder.Nick Lewycky2010-09-051-2/+2
| | | | llvm-svn: 113106
* Switch FnSet to containing the ComparableFunction instead of a pointer to one.Nick Lewycky2010-09-051-36/+67
| | | | | | This reduces malloc traffic (yay!) and removes MergeFunctionsEqualityInfo. llvm-svn: 113105
* Fix many bugs when merging weak-strong and weak-weak pairs. We now merge allNick Lewycky2010-09-051-98/+183
| | | | | | | strong functions first to make sure they're the canonical definitions and then do a second pass looking only for weak functions. llvm-svn: 113104
* implement rdar://6653118 - fastisel should fold loads where possible.Chris Lattner2010-09-054-10/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since mem2reg isn't run at -O0, we get a ton of reloads from the stack, for example, before, this code: int foo(int x, int y, int z) { return x+y+z; } used to compile into: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx movl 4(%rsp), %esi addl %edx, %esi movl (%rsp), %edx addl %esi, %edx movl %edx, %eax addq $12, %rsp ret Now we produce: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx addl 4(%rsp), %edx ## Folded load addl (%rsp), %edx ## Folded load movl %edx, %eax addq $12, %rsp ret Fewer instructions and less register use = faster compiles. llvm-svn: 113102
* Remove dead code.Jakob Stoklund Olesen2010-09-041-97/+0
| | | | | | | Clobber ranges are no longer used when joining physical registers. Instead, all aliases are checked for interference. llvm-svn: 113084
* dead method.Chris Lattner2010-09-041-1/+0
| | | | llvm-svn: 113077
* zap dead code.Chris Lattner2010-09-0418-141/+4
| | | | llvm-svn: 113073
* remove dead code, mblaze uses SelectAddrRegImm/SelectAddrRegReg,Chris Lattner2010-09-041-54/+0
| | | | | | not SelectAddr llvm-svn: 113072
* Remove the last bit of isShuffleMaskLegal checks and improve the comment ↵Bruno Cardoso Lopes2010-09-041-5/+3
| | | | | | regarding mmx shuffles llvm-svn: 113059
* make explicit that we not handle several mmx shufflesBruno Cardoso Lopes2010-09-041-7/+7
| | | | llvm-svn: 113058
* Fix LoopSimplify to notify ScalarEvolution when splitting a loop backedgeDan Gohman2010-09-041-1/+10
| | | | | | | into an inner loop, as the new loop iteration may differ substantially. This fixes PR8078. llvm-svn: 113057
* Emit target specific nodes to handle palignr. Do not touch it for MMX ↵Bruno Cardoso Lopes2010-09-041-2/+10
| | | | | | versions yet. llvm-svn: 113056
* Emit target specific nodes to handle splats starting at zero indiciesBruno Cardoso Lopes2010-09-041-1/+8
| | | | llvm-svn: 113055
* Emit target specific nodes for isPSHUFHWMask and isPSHUFLWMaskBruno Cardoso Lopes2010-09-041-2/+10
| | | | llvm-svn: 113050
* Emit target specific nodes for isSHUFPMaskBruno Cardoso Lopes2010-09-041-1/+10
| | | | llvm-svn: 113048
* Previous isMOVLMask matching already emits targets nodes, remove checkBruno Cardoso Lopes2010-09-041-1/+0
| | | | llvm-svn: 113047
* One more check from the original isShuffleMaskLegal goes awayBruno Cardoso Lopes2010-09-041-1/+0
| | | | llvm-svn: 113045
* Remove a duplicated but useless check that i've inserted in the previous commit.Bruno Cardoso Lopes2010-09-041-9/+0
| | | | llvm-svn: 113044
* Refactor some code and remove the extra checks for unpckl_undef and unpckh_undefBruno Cardoso Lopes2010-09-041-28/+25
| | | | llvm-svn: 113043
* fix a bug in my licm rewrite when a load from the promoted memoryChris Lattner2010-09-041-3/+29
| | | | | | | | location is being re-stored to the memory location. We would get a dangling pointer from the SSAUpdate data structure and miss a use. This fixes PR8068 llvm-svn: 113042
* Remove check for unpckh maskBruno Cardoso Lopes2010-09-031-1/+0
| | | | llvm-svn: 113035
* Remove check for unpckl maskBruno Cardoso Lopes2010-09-031-1/+0
| | | | llvm-svn: 113034
* Inline isShuffleMaskLegal into LowerVECTOR_SHUFFLE, so we can startBruno Cardoso Lopes2010-09-031-4/+23
| | | | | | | checking each standalone condition and decide whether emit target specific nodes or remove the condition if it's already matched before. llvm-svn: 113031
* Propagate non-local comparisons. Fixes PR1757.Owen Anderson2010-09-031-0/+48
| | | | llvm-svn: 113025
* Disable the asserts that check that normalization is perfectlyDan Gohman2010-09-031-2/+7
| | | | | | | | | invertible. ScalarEvolution's folding routines don't always succeed in canonicalizing equal expressions to a single canonical form, and this can cause these asserts to fail, even though there's no actual correctness problem. This fixes PR8066. llvm-svn: 113021
* Reapply considered harmfull part of rr112934 and r112942.Bruno Cardoso Lopes2010-09-031-12/+109
| | | | | | | | "Use target specific nodes instead of relying in unpckl and unpckh pattern fragments during isel time. Also place a depth limit in getShuffleScalarElt. llvm-svn: 113020
* previous patch was a little too tricky for its own good. Don't try toJim Grosbach2010-09-031-8/+7
| | | | | | | | overload UserInInstr. Explicitly check Allocatable. The early exit in the condition will mean the performance impact of the extra test should be minimal. llvm-svn: 113016
* Remove the rest of the nonexistent 64-bit AVX instructions.Dale Johannesen2010-09-031-79/+76
| | | | | | Bruno, please review. llvm-svn: 113014
OpenPOWER on IntegriCloud