summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* ARM parse alignment specifier for NEON load/store instructions.Jim Grosbach2011-10-112-29/+93
| | | | llvm-svn: 141682
* ARM Rename operand sub-structure 'Mem' to 'Memory' for a bit more clarity.Jim Grosbach2011-10-111-113/+113
| | | | llvm-svn: 141671
* Add support for legalization of vector SHL/SRA/SRL instructionsNadav Rotem2011-10-111-0/+25
| | | | llvm-svn: 141667
* Implement the emitFrameIndexDebugValue and getDebugValueLocation hooks.Richard Osborne2011-10-113-6/+64
| | | | | | | This fixes an assert due to the operands of the DBG_VALUE instruction not being as expected (PR11105). llvm-svn: 141666
* Fix a iterator out of bounds error, that triggers rarely.Kalle Raiskila2011-10-111-0/+2
| | | | llvm-svn: 141665
* Add support for legalization of vector trunc-store where the saved scalar ↵Nadav Rotem2011-10-111-13/+13
| | | | | | type is illegal (for example, v2i16 on systems where the smallest store size is i32) llvm-svn: 141661
* Cleanup the trunc-store legalization code and add asserts.Nadav Rotem2011-10-111-68/+87
| | | | llvm-svn: 141659
* Add HasPOPCNT predicate to the POPCNT instructions. Also mark POPCNT as ↵Craig Topper2011-10-112-20/+23
| | | | | | modifying EFLAGS. llvm-svn: 141656
* Make Ivy Bridge 16-bit floating point conversion instructions require AVX.Craig Topper2011-10-111-1/+1
| | | | llvm-svn: 141654
* Add X86 LZCNT instruction. Including instruction selection support.Craig Topper2011-10-115-7/+50
| | | | llvm-svn: 141651
* Remove a lot of the fancy scalar replacement code for dealing with llvm-gcc'sCameron Zwarich2011-10-111-205/+16
| | | | | | | lowering of NEON code. It provides little-to-no benefit now and only introduces additional complexity. llvm-svn: 141646
* Fix disassembling of popcntw. Also remove some code that says it accounts ↵Craig Topper2011-10-112-68/+3
| | | | | | for 64BIT_REXW_XD not existing, but it does exist. llvm-svn: 141642
* Also create a shndx even if there are no symbols. This lets us testNick Lewycky2011-10-111-0/+3
| | | | | | | .symtab_shndx reading and writing together, and finally we have a testcase for r141440. llvm-svn: 141641
* Reapply r141605 with fixes for appropriate handling of reserved section numbersNick Lewycky2011-10-111-17/+50
| | | | | | in st_shndx fields. llvm-svn: 141639
* Add support for .symtab_shnidx. Unfortunately, doing this required breaking aNick Lewycky2011-10-111-9/+42
| | | | | | | layer of abstraction around SymbolRef where you can read its private SymbolPimpl member. llvm-svn: 141636
* Add experimental -enable-lsr-phielim option.Andrew Trick2011-10-111-0/+22
| | | | | | | I'm not sure we will need it in the long run, but the option is currently useful for checking if the output of LSR is "clean". llvm-svn: 141634
* Move replaceCongruentIVs into SCEVExapander and bias toward "expanded"Andrew Trick2011-10-112-87/+106
| | | | | | | | | | | IVs. Indvars previously chose randomly between congruent IVs. Now it will bias the decision toward IVs that SCEVExpander likes to create. This was not done to fix any problem, it's just a welcome side effect of factoring code. llvm-svn: 141633
* Make changes necessary for supporting floating point load and store instructionsAkira Hatanaka2011-10-114-23/+50
| | | | | | | that have 64-bit pointers or access the 32 x 64-bit floating pointer register file. Update functions in MipsInstrInfo.cpp too. llvm-svn: 141623
* Move -widen-vmovs to ARMBaseInstrInfo::expandPostRAPseudo().Jakob Stoklund Olesen2011-10-112-30/+44
| | | | | | | | | | | The VMOVS widening needs to look at the implicit COPY operands. Trying to dig out the COPY instruction from an iterator in copyPhysReg() is the wrong approach. The expandPostRAPseudo() hook gets to look at COPY instructions before they are converted to copyPhysReg() calls. llvm-svn: 141619
* Modify lowering of GlobalAddress so that correct code is emitted when target isAkira Hatanaka2011-10-113-14/+23
| | | | | | Mips64. llvm-svn: 141618
* Fixed natural stack alignment for Linux x86-32. Thanks Eli.Lang Hames2011-10-111-1/+1
| | | | llvm-svn: 141616
* Modify MipsDAGToDAGISel::SelectAddr so that it can handle 64-bit pointers too.Akira Hatanaka2011-10-111-7/+10
| | | | llvm-svn: 141615
* Revert r141605 as it broke tests for llvm-nm.Nick Lewycky2011-10-111-34/+13
| | | | llvm-svn: 141614
* Simplify and update functions storeRegToStackSlot and loadRegFromStackSlot.Akira Hatanaka2011-10-112-17/+24
| | | | llvm-svn: 141613
* Add definitions of 64-bit loads and stores. Add a patterns for unalignedAkira Hatanaka2011-10-113-1/+38
| | | | | | zextloadi32 for which there is no corresponding pseudo or real instruction. llvm-svn: 141608
* Make it possible to use the linker without destroying the source module. ↵Tanya Lattner2011-10-111-30/+55
| | | | | | | | | | | | | | This is so the source module can be linked to multiple other destination modules. For all that used LinkModules() before, they will continue to destroy the source module as before. This line, and those below, will be ignored-- M include/llvm/Linker.h M tools/bugpoint/Miscompilation.cpp M tools/bugpoint/BugDriver.cpp M tools/llvm-link/llvm-link.cpp M lib/Linker/LinkModules.cpp llvm-svn: 141606
* Add support for reading many-section ELF files.Nick Lewycky2011-10-111-13/+34
| | | | | | | If you want to tackle adding the testcase, let me know. It's a 4.2MB ELF file and I'll be happy to mail it to you. llvm-svn: 141605
* Change definitions of classes LoadM and StoreM in preparation for adding supportAkira Hatanaka2011-10-112-20/+65
| | | | | | | for 64-bit load and store instructions. Add definitions of 64-bit memory operand and 16-bit immediate operand. llvm-svn: 141603
* Simplify check that optional def is there and is CPSR.Bill Wendling2011-10-111-5/+4
| | | | llvm-svn: 141602
* Add a natural stack alignment field to TargetData, and prevent InstCombine fromLang Hames2011-10-106-14/+33
| | | | | | | | | | | | | | promoting allocas to preferred alignments that exceed the natural alignment. This avoids some potentially expensive dynamic stack realignments. The natural stack alignment is set in target data strings via the "S<size>" option. Size is in bits and must be a multiple of 8. The natural stack alignment defaults to "unspecified" (represented by a zero value), and the "unspecified" value does not prevent any alignment promotions. Target maintainers that care about avoiding promotions should explicitly add the "S<size>" option to their target data strings. llvm-svn: 141599
* Fix warning.Michael J. Spencer2011-10-101-2/+2
| | | | llvm-svn: 141597
* Revert r141569 and r141576.Devang Patel2011-10-101-29/+0
| | | | llvm-svn: 141594
* Simplify operand Kind checks a bit.Jim Grosbach2011-10-101-20/+20
| | | | llvm-svn: 141592
* Reapply r141365 now that PR11107 is fixed.Bill Wendling2011-10-104-0/+165
| | | | llvm-svn: 141591
* Add a name to sub-operand for clarity.Jim Grosbach2011-10-101-1/+1
| | | | llvm-svn: 141590
* If the CPSR is defined by a copy, then we don't want to merge it into an ITBill Wendling2011-10-101-0/+22
| | | | | | | | | | | | | | | | | | | | | block. E.g., if we have: movs r1, r1 rsb r1, 0 movs r2, r2 rsb r2, 0 we don't want this to be converted to: movs r1, r1 movs r2, r2 itt mi rsb r1, 0 rsb r2, 0 PR11107 & <rdar://problem/10259534> llvm-svn: 141589
* Make sure the X86 backend doesn't explode on 128-bit shuffles in AVX mode. ↵Eli Friedman2011-10-101-12/+4
| | | | | | Fixes PR11102. llvm-svn: 141585
* Object: add getSectionAlignment.Michael J. Spencer2011-10-103-0/+34
| | | | llvm-svn: 141581
* Give targets a chance to expand even standard pseudos.Jakob Stoklund Olesen2011-10-101-4/+12
| | | | | | | | | | | Allow targets to expand COPY and other standard pseudo-instructions before they are expanded with copyPhysReg(). This allows the target to examine the COPY instruction for extra operands indicating it can be widened to a preferable super-register copy. See the ARM -widen-vmovs option. llvm-svn: 141578
* If loop header is also loop exiting block then it may not be safe to hoist ↵Devang Patel2011-10-101-5/+4
| | | | | | instructions. llvm-svn: 141576
* X86: Add a subtarget definition for core-avx-i, which is GCC's name for ivy ↵Benjamin Kramer2011-10-101-0/+5
| | | | | | bridge. llvm-svn: 141571
* Fix 10892 - When lowering SIGN_EXTEND_INREG do not lower v2i64 because theNadav Rotem2011-10-101-11/+3
| | | | | | instruction set has no 64-bit SRA support. llvm-svn: 141570
* Add dominance check for the instruction being hoisted.Devang Patel2011-10-101-0/+30
| | | | | | | For example, MachineLICM should not hoist a load that is not guaranteed to be executed. Radar 10254254. llvm-svn: 141569
* The Mips specific function for instruction cache invalidation cannot beBruno Cardoso Lopes2011-10-101-34/+5
| | | | | | | | | compiled on mips32r1 processors because it uses synci and rdhwr instructions which are supported only on mips32r2, so I replaced this function with the call to function cacheflush which works for both mips32r1 and mips32r2. Patch by Sasa Stankovic llvm-svn: 141564
* X86: Add patterns for the movbe instruction (mov + bswap, only available on ↵Benjamin Kramer2011-10-103-12/+13
| | | | | | atom) llvm-svn: 141563
* Revert r141365. It was causing MultiSource/Benchmarks/MiBench/consumer-lame toBill Wendling2011-10-104-165/+0
| | | | | | hang, and possibly SPEC/CINT2006/464_h264ref. llvm-svn: 141560
* MCAtom extending methods need to extend the range of the atom as well.Owen Anderson2011-10-101-0/+18
| | | | llvm-svn: 141557
* When getting the number of bits necessary for addressing modeBill Wendling2011-10-101-2/+11
| | | | | | | | ARMII::AddrModeT1_s, we need to take into account that if the frame register is ARM::SP, then the number of bits is 8. If it's not ARM::SP, then the number of bits is 5. llvm-svn: 141529
* Put a bunch of calls to ToggleFeature behind proper if statements.Craig Topper2011-10-101-17/+42
| | | | llvm-svn: 141527
* Fix a regression from r138445. If we're loading from the frame/base pointerChad Rosier2011-10-101-0/+1
| | | | | | | | the tADDrSPi instruction can't be used. Make sure we're updating the opcode to tADDi3 in all cases. rdar://10254707 llvm-svn: 141523
OpenPOWER on IntegriCloud