summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Re-enable usage of the ARM base pointer. r113394 fixed the known failures.Jim Grosbach2010-09-081-1/+1
| | | | | | Re-running some nightly testers w/ it enabled to verify. llvm-svn: 113399
* Fix errant fall-throughs causing the base pointer to be used when the frameJim Grosbach2010-09-081-3/+3
| | | | | | pointer was intended. rdar://8401980 llvm-svn: 113394
* Add intrinsic forms of mmx<->sse conversions. Notes:Dale Johannesen2010-09-081-0/+51
| | | | | | | | | Omission of memory form of PI2PD is intentional; this does not use an MMX register and does not put the chip into MMX mode (PI2PS, oddly enough, does). Operands of PI2PS follow the gcc builtin, not Intel. llvm-svn: 113388
* Rewrite TargetMaterializeConstant.Eric Christopher2010-09-081-7/+18
| | | | llvm-svn: 113387
* Remove dead code.Jakob Stoklund Olesen2010-09-081-11/+0
| | | | llvm-svn: 113386
* Minor change. Fix comments and remove unused and redundant codeBruno Cardoso Lopes2010-09-081-10/+3
| | | | llvm-svn: 113378
* ELF_STB_Local is 0 so setting and checking it must be done speciallyRoman Divacky2010-09-082-3/+5
| | | | llvm-svn: 113375
* Clarify the ownership model of LLVMContext and Module. Namely, contexts ownOwen Anderson2010-09-084-0/+24
| | | | | | | modules are instantiated in them. If the context is deleted, all of its owned modules are also deleted. llvm-svn: 113374
* x86 vector shuffle lowering now relies only on target specificBruno Cardoso Lopes2010-09-082-6/+132
| | | | | | | | | | | | | | | nodes to emit shuffles and don't do isel mask matching anymore. - Add the selection of the remaining shuffle opcode (movddup) - Introduce two new functions to "recognize" where we may get potential folds and add several comments to them explaining why they are not yet in the desidered shape. - Add more patterns to fallback the case where we select a specific shuffle opcode as if it could fold a load, but it can't, so remap to a valid instruction. - Add a couple of FIXMEs to address in the following days once there's a good solution to the current folding problem. llvm-svn: 113369
* Be more careful about when to do dynamic stack realignment. Since we have anJim Grosbach2010-09-081-2/+9
| | | | | | | option to disable base pointer usage, pay attention to it when deciding if we can realign (if no base pointer and VLAs, we can't). llvm-svn: 113366
* Add missing assertJim Grosbach2010-09-081-1/+4
| | | | llvm-svn: 113365
* Unresolved weak symbols have value equal zero.Roman Divacky2010-09-081-1/+1
| | | | llvm-svn: 113358
* Fix CellSPU vector shuffles, again.Kalle Raiskila2010-09-081-7/+7
| | | | | | Some cases of lowering to rotate were miscompiled. llvm-svn: 113355
* add support for the commuted form of the test instruction, rdar://8018260.Chris Lattner2010-09-081-0/+10
| | | | llvm-svn: 113352
* implement proper support for sysret{,l,q}, rdar://8403907Chris Lattner2010-09-083-2/+7
| | | | llvm-svn: 113350
* implement the iret suite of instructions properly,Chris Lattner2010-09-083-3/+5
| | | | | | fixing rdar://8403974 llvm-svn: 113349
* add support for instruction prefixes on the same line as the instruction,Chris Lattner2010-09-081-6/+17
| | | | | | implementing rdar://8033482 and PR7254. llvm-svn: 113348
* change the MC "ParseInstruction" interface to make it the Chris Lattner2010-09-083-7/+9
| | | | | | | implementation's job to check for and lex the EndOfStatement marker. llvm-svn: 113347
* gas accepts xchg <mem>, <reg> as a synonym for xchg <reg>, <mem>.Chris Lattner2010-09-081-0/+11
| | | | | | Add this to the mc assembler, fixing PR8061 llvm-svn: 113346
* ARM/Disassembler: Fix definitions incompatible(unsigned and uint32_t) to ↵NAKAMURA Takumi2010-09-081-2/+2
| | | | | | Cygwin-1.5, following up to r113255. llvm-svn: 113345
* fix the encoding of the "jump on *cx" family of instructions,Chris Lattner2010-09-082-18/+22
| | | | | | rdar://8061602 llvm-svn: 113343
* remove trailing whitespaceJim Grosbach2010-09-081-12/+12
| | | | llvm-svn: 113338
* remove obsolete commentJim Grosbach2010-09-081-1/+0
| | | | llvm-svn: 113337
* disable for the moment while tracking down a few Thumb2-O0 failure that lookJim Grosbach2010-09-081-1/+1
| | | | | | related. (attempt deux, complete w/ test update this time) llvm-svn: 113333
* woops. need to update a test along with this.Jim Grosbach2010-09-081-1/+1
| | | | llvm-svn: 113332
* disable temporarily while sorting out a few test failures in Thumb2-O0 tests.Jim Grosbach2010-09-081-1/+1
| | | | llvm-svn: 113331
* Add a new experimental generalized dependence query interface toDan Gohman2010-09-082-0/+212
| | | | | | | | AliasAnalysis, and some code for implementing the new query on top of existing implementations by making standard alias and getModRefInfo queries. llvm-svn: 113329
* correct spill code to properly determine if dynamic stack realignment isJim Grosbach2010-09-081-2/+2
| | | | | | | present in the function and thus whether aligned load/store instructions can be used. llvm-svn: 113323
* VFP/NEON load/store multiple instructions are addrmode4, not 5.Jim Grosbach2010-09-083-14/+14
| | | | llvm-svn: 113322
* Add a separate unrolling threshold when the current function is being ↵Owen Anderson2010-09-071-4/+20
| | | | | | | | | | optimized for size. The threshold value of 50 is arbitrary, and I chose it simply by analogy to the inlining thresholds, where the baseline unrolling threshold is slightly smaller than the baseline inlining threshold. This could undoubtedly use some tuning. llvm-svn: 113306
* Don't add <imp-def> operands during register rewriting.Jakob Stoklund Olesen2010-09-071-16/+9
| | | | | | | | | | | | | | LiveIntervals already adds <imp-def> operands for super-registers when a subreg def defines the whole register. Thus, it is not necessary to do it again when rewriting. In fact, the super-register imp-defs caused miscompilations because the late scheduler couldn't see that the super-register was read. We still add super-reg <imp-use,kill> operands when rewriting virtuals to physicals. llvm-svn: 113299
* To shrink a t2LDM instruction to the 16-bit wide tLDM instruction, the baseJim Grosbach2010-09-071-0/+12
| | | | | | | | | | register must be one of the destination registers for the load. Otherwise, the tLDM instruction will write-back to the base register, which isn't what's desired (otherwise, we'd have a t2LDM_UPD instead). rdar://8394087 llvm-svn: 113297
* grammar tweakJim Grosbach2010-09-071-1/+1
| | | | llvm-svn: 113289
* Factor out some x86 vector shuffle rewriting and add comments about the ↵Bruno Cardoso Lopes2010-09-071-29/+59
| | | | | | direction the shuffle lowering is heading to llvm-svn: 113286
* Fix PR7972, in which the PassRegistry was being leaked. As part of this,Owen Anderson2010-09-071-35/+16
| | | | | | | switch to using a ManagedStatic for the global PassRegistry instead of a ManagedCleanup, and fix a destruction ordering bug this exposed. llvm-svn: 113283
* Move code around to prepare for moving some of the logic together to another ↵Bruno Cardoso Lopes2010-09-071-3/+3
| | | | | | function llvm-svn: 113267
* Add an MVT::x86mmx type. It will take the place of all current MMX vector types.Bill Wendling2010-09-072-0/+4
| | | | llvm-svn: 113261
* Fix a serious performance regression introduced by r108687 on linux:Chris Lattner2010-09-071-1/+6
| | | | | | | | turning (fptrunc (sqrt (fpext x))) -> (sqrtf x) is great, but we have to delete the original sqrt as well. Not doing so causes us to do two sqrt's when building with -fmath-errno (the default on linux). llvm-svn: 113260
* Remove a dead comment.Evan Cheng2010-09-071-1/+0
| | | | llvm-svn: 113259
* hopefully fix a problem building on cygwin-1.5Chris Lattner2010-09-071-2/+2
| | | | llvm-svn: 113255
* Clean up some of the PassRegistry implementation, and pImpl-ize it to reduce ↵Owen Anderson2010-09-072-26/+66
| | | | | | | | #include clutter and exposing internal details. llvm-svn: 113252
* decouple MMX check from regular splat checks. Some refactoring is coming, ↵Bruno Cardoso Lopes2010-09-071-4/+8
| | | | | | and MMX should be left alone to be easily removed after moving to intrinsics llvm-svn: 113247
* Remove now useless check, because the code can be matched below, no need to ↵Bruno Cardoso Lopes2010-09-071-1/+1
| | | | | | leave it for isel llvm-svn: 113242
* Issue a #error if the host doesn't have an implementation forDan Gohman2010-09-071-0/+2
| | | | | | GetMainExecutable yet. llvm-svn: 113240
* Minor change. Since the checks are equivalent, use isMMXBruno Cardoso Lopes2010-09-071-1/+1
| | | | llvm-svn: 113239
* Create PTX backend. Patch by Che-Liang Chiou!Nick Lewycky2010-09-0713-0/+230
| | | | llvm-svn: 113235
* Add patterns for MMX that use the new intrinsics.Dale Johannesen2010-09-072-16/+71
| | | | | | | Enable palignr intrinsic. These may need adjustment for a new VT in due course. llvm-svn: 113233
* Remove unused target specific nodeBruno Cardoso Lopes2010-09-072-10/+0
| | | | llvm-svn: 113224
* Don't leak the old operand when transforming "sldt" into "sldtw".Benjamin Kramer2010-09-071-1/+3
| | | | llvm-svn: 113200
* Add completely hokey binary-and and binary-or operations to ConstantRange andNick Lewycky2010-09-072-0/+32
| | | | | | teach LazyValueInfo to use them. llvm-svn: 113196
OpenPOWER on IntegriCloud