summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Support pointer comparisons against constants, when looking at the inline-costNick Lewycky2012-01-252-1/+94
| | | | | | | | | savings from a pointer argument becoming an alloca. Sometimes callees will even compare a pointer to null and then branch to an otherwise unreachable block! Detect these cases and compute the number of saved instructions, instead of bailing out and reporting no savings. llvm-svn: 148941
* Revert a tiny bit of r148553 which extended LLVM's function attributesChandler Carruth2012-01-251-2/+6
| | | | | | | | | | | | | | | | | to 64-bits, and added a new attribute in bit #32. Specifically, remove this new attribute from the enum used in the C API. It's not yet clear what the best approach is for exposing these new attributes in the C API, and several different proposals are on the table. Until then, we can simply not expose this bit in the API at all. Also, I've reverted a somewhat unrelated change in the same revision which switched from "1 << 31" to "1U << 31" for the top enum. While "1 << 31" is technically undefined behavior, implementations DTRT here. However, MS and -pedantic mode warn about non-'int' type enumerator values. If folks feel strongly about this I can put the 'U' back in, but it seemed best to wait for the proper solution. llvm-svn: 148937
* Update hasProperty comment.Evan Cheng2012-01-251-3/+0
| | | | llvm-svn: 148936
* use Constant::getAggregateElement to simplify a bunch of code.Chris Lattner2012-01-255-179/+58
| | | | llvm-svn: 148934
* Custom lower PSIGN and PSHUFB intrinsics to their corresponding target ↵Craig Topper2012-01-254-74/+49
| | | | | | specific nodes so we can remove the isel patterns. llvm-svn: 148933
* constify some methods and add a new Constant::getAggregateElementChris Lattner2012-01-253-16/+56
| | | | | | | helper method for the common operation of extracting an element out of a constant aggregate. llvm-svn: 148931
* use ConstantVector::getSplat in a few places.Chris Lattner2012-01-256-53/+23
| | | | llvm-svn: 148929
* Custom lower phadd and phsub intrinsics to target specific nodes. Remove the ↵Craig Topper2012-01-253-63/+70
| | | | | | patterns that are no longer necessary. llvm-svn: 148927
* reapply r148901 with a crucial fix.Chris Lattner2012-01-252-31/+68
| | | | | | | "Introduce a new ConstantVector::getSplat constructor function to simplify a really common case." llvm-svn: 148924
* Remove AVX 256-bit unaligned load intrinsics. 128-bit versions had been ↵Craig Topper2012-01-252-10/+0
| | | | | | removed a while ago. llvm-svn: 148922
* Mark 64-bit register RA_64 unused too.Akira Hatanaka2012-01-251-4/+5
| | | | llvm-svn: 148918
* Modify MipsFrameLowering::emitPrologue and emitEpilogue.Akira Hatanaka2012-01-252-80/+70
| | | | | | | | | | | - Use MipsAnalyzeImmediate to expand immediates that do not fit in 16-bit. - Change the types of variables so that they are sufficiently large to handle 64-bit pointers. - Emit instructions to set register $28 in a function prologue after instructions which store callee-saved registers have been emitted. llvm-svn: 148917
* Modify MipsRegisterInfo::eliminateFrameIndex to use MipsAnalyzeImmediate toAkira Hatanaka2012-01-251-12/+34
| | | | | | | | expand offsets that do not fit in the 16-bit immediate field of load and store instructions. Also change the types of variables so that they are sufficiently large to handle 64-bit pointers. llvm-svn: 148916
* Merge intrinsic pattern and no pattern versions of VCVTSD2SI intruction ↵Craig Topper2012-01-251-24/+5
| | | | | | definitions. Matches non-AVX version of same instructions. llvm-svn: 148914
* -fvisibility-inlines-hidden is a c++ only option.Rafael Espindola2012-01-251-1/+0
| | | | | | Thanks to Peter Collingbourne for noticing it. llvm-svn: 148913
* MipsAnalyzeImmediate.h: Fix to add DataTypes.h for msvc.NAKAMURA Takumi2012-01-251-0/+1
| | | | | | inttypes.h is not supplied in msvc. llvm-svn: 148912
* Fix assert("msg"). Fix unused-variable warnings complaining about VT used onlyNick Lewycky2012-01-251-5/+8
| | | | | | in asserts. llvm-svn: 148910
* Target/Mips: Unbreak CMake build.NAKAMURA Takumi2012-01-251-0/+1
| | | | llvm-svn: 148909
* Lower 64-bit immediates using MipsAnalyzeImmediate that has just been added. Akira Hatanaka2012-01-253-38/+58
| | | | | | | Add a test case to show fewer instructions are needed to load an immediate with the new way of loading immediates. llvm-svn: 148908
* Revert r148901 because it crashes llvm tests.Argyrios Kyrtzidis2012-01-252-64/+28
| | | | | | | | Original log: Introduce a new ConstantVector::getSplat constructor function to simplify a really common case. llvm-svn: 148906
* Introduce a new ConstantVector::getSplat constructor function to Chris Lattner2012-01-252-28/+64
| | | | | | simplify a really common case. llvm-svn: 148901
* Add class MipsAnalyzeImmediate which comes up with an instruction sequence toAkira Hatanaka2012-01-252-0/+215
| | | | | | load an immediate. llvm-svn: 148900
* Remove the Type::getNumElements() method, which is only called in 4 places,Chris Lattner2012-01-254-19/+19
| | | | | | | did something extremely surprising, and shadowed actually useful implementations that had completely different behavior. llvm-svn: 148898
* Use the right method to get the # elements in a CDS.Chris Lattner2012-01-254-7/+7
| | | | llvm-svn: 148897
* NEON VLD4(all lanes) assembly parsing and encoding.Jim Grosbach2012-01-255-2/+255
| | | | llvm-svn: 148884
* Tidy up. Rename VLD4DUP patterns for consistency.Jim Grosbach2012-01-241-6/+6
| | | | llvm-svn: 148883
* NEON VLD3(all lanes) assembly parsing and encoding.Jim Grosbach2012-01-245-6/+253
| | | | llvm-svn: 148882
* Additional methods for SmallString.Talin2012-01-242-5/+376
| | | | llvm-svn: 148881
* Set correct <def,undef> flags when lowering REG_SEQUENCE.Jakob Stoklund Olesen2012-01-243-1/+90
| | | | | | | | | | | | | | | | | | | | A REG_SEQUENCE instruction is lowered into a sequence of partial defs: %vreg7:ssub_0<def,undef> = COPY %vreg20:ssub_0 %vreg7:ssub_1<def> = COPY %vreg2 %vreg7:ssub_2<def> = COPY %vreg2 %vreg7:ssub_3<def> = COPY %vreg2 The first def needs an <undef> flag to indicate it is the beginning of the live range, while the other defs are read-modify-write. Previously, we depended on LiveIntervalAnalysis to notice and fix the missing <def,undef>, but that solution was never robust, it was causing problems with ProcessImplicitDefs and the lowering of chained REG_SEQUENCE instructions. This fixes PR11841. llvm-svn: 148879
* Use the standard MachineFunction::print() after SlotIndexes.Jakob Stoklund Olesen2012-01-241-1/+1
| | | | llvm-svn: 148878
* Sign-extend 32-bit integer arguments when they are passed in 64-bit registers,Akira Hatanaka2012-01-241-1/+4
| | | | | | which is what N32/64 does. llvm-svn: 148875
* Pass CCState by reference.Akira Hatanaka2012-01-241-1/+1
| | | | llvm-svn: 148871
* Pattern for f32 to i64 conversion.Akira Hatanaka2012-01-242-0/+8
| | | | llvm-svn: 148869
* ARM Darwin symbol ref differences w/o subsection-via-symbols.Jim Grosbach2012-01-242-1/+20
| | | | | | | | When not using subsections via symbols, the assembler can resolve symbol differences (including pcrel references) to non-local labels at assembly time, not just those in the same atom. llvm-svn: 148865
* Intel Syntax: Extend special hand coded logic, to recognize special ↵Devang Patel2012-01-242-5/+18
| | | | | | instructions, for intel syntax. llvm-svn: 148864
* 64-bit sign extension in register instructions.Akira Hatanaka2012-01-243-13/+14
| | | | llvm-svn: 148862
* Tidy up. Trailing whitespace.Jim Grosbach2012-01-241-24/+24
| | | | llvm-svn: 148856
* Sink assert-only variables into the assertsMatt Beaumont-Gay2012-01-241-16/+10
| | | | llvm-svn: 148849
* [asan] enable asan only for the functions that have Attribute::AddressSafetyKostya Serebryany2012-01-244-4/+5
| | | | llvm-svn: 148846
* NEON VST4(one lane) assembly parsing and encoding.Jim Grosbach2012-01-243-11/+181
| | | | llvm-svn: 148836
* Widen the instruction encoder that TblGen emits to a 64 bits, which should ↵Owen Anderson2012-01-248-14/+14
| | | | | | accomodate every target I can think of offhand. llvm-svn: 148833
* NEON VLD4(one lane) assembly parsing and encoding.Jim Grosbach2012-01-243-11/+278
| | | | llvm-svn: 148832
* Fix old doxygen comment.Jakob Stoklund Olesen2012-01-241-2/+1
| | | | llvm-svn: 148825
* Add an (interleave A, B, ...) SetTheory operator.Jakob Stoklund Olesen2012-01-243-0/+29
| | | | | | This will interleave the elements from two or more lists. llvm-svn: 148824
* Undo an over zealous rename. This bit of the CMake build really isChandler Carruth2012-01-243-6/+9
| | | | | | | dealing in the host triple, be honest about it and document the decision to default the target triple to the host triple unless overridden. llvm-svn: 148822
* NEON Two-operand assembly aliases for VSRA.Jim Grosbach2012-01-242-33/+110
| | | | llvm-svn: 148821
* Remove redundant test file.Jim Grosbach2012-01-241-98/+0
| | | | llvm-svn: 148820
* NEON Two-operand assembly aliases for VSLI.Jim Grosbach2012-01-242-16/+52
| | | | llvm-svn: 148819
* NEON Two-operand assembly aliases for VSRI.Jim Grosbach2012-01-242-16/+52
| | | | llvm-svn: 148818
* Tidy up.Jim Grosbach2012-01-241-32/+41
| | | | llvm-svn: 148817
OpenPOWER on IntegriCloud