summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* some peepholes that should match horizontal add/sub operations.Chris Lattner2012-09-031-0/+12
| | | | llvm-svn: 163103
* [ms-inline asm] Expose the Kind and Opcode variables from theChad Rosier2012-09-035-17/+34
| | | | | | | | | | MatchInstructionImpl() function. These values are used by the ConvertToMCInst() function to index into the ConversionTable. The values are also needed to call the GetMCInstOperandNum() function. llvm-svn: 163101
* Move ErrorLoc decl into the scope where it's actually used.Chad Rosier2012-09-031-2/+1
| | | | llvm-svn: 163100
* escape special char when handling CXX_FOR_OCAMLOPTNuno Lopes2012-09-021-1/+1
| | | | llvm-svn: 163098
* fix test's RUN linesNuno Lopes2012-09-021-19/+19
| | | | llvm-svn: 163097
* add support for ocaml 3.12Nuno Lopes2012-09-022-0/+6
| | | | llvm-svn: 163096
* replace a couple of single-line comments with /* */ to fix the build of ↵Nuno Lopes2012-09-024-67/+68
| | | | | | stuff depending on the C headers llvm-svn: 163095
* Fix a typo.Nadav Rotem2012-09-021-1/+1
| | | | llvm-svn: 163094
* Not all targets have efficient ISel code generation for select instructions.Nadav Rotem2012-09-024-10/+39
| | | | | | | | | For example, the ARM target does not have efficient ISel handling for vector selects with scalar conditions. This patch adds a TLI hook which allows the different targets to report which selects are supported well and which selects should be converted to CF duting codegen prepare. llvm-svn: 163093
* LoopRotation: Make the brute force DomTree update more brute force.Benjamin Kramer2012-09-022-32/+57
| | | | | | | | | | | | | | We update until we hit a fixpoint. This is probably slow but also slightly simplifies the code. It should also fix the occasional invalid domtrees observed when building with expensive checking. I couldn't find a case where this had a measurable slowdown, but if someone finds a pathological case where it does we may have to find a cleverer way of updating dominators here. Thanks to Duncan for the test case. llvm-svn: 163091
* Rename ANDROIDEABI to Android.Logan Chien2012-09-023-4/+4
| | | | | | | | | | | | | Most of the code guarded with ANDROIDEABI are not ARM-specific, and having no relation with arm-eabi. Thus, it will be more natural to call this environment "Android" instead of "ANDROIDEABI". Note: We are not using ANDROID because several projects are using "-DANDROID" as the conditional compilation flag. llvm-svn: 163087
* Generate better select code by allowing the target to use scalar select, and ↵Nadav Rotem2012-09-022-4/+5
| | | | | | not sign-extend. llvm-svn: 163086
* Only legalise a VSELECT in to bitwise operations if the vector mask bool is ↵Pete Cooper2012-09-011-1/+6
| | | | | | | | | zeros or all ones. A vector bool with just ones isn't suitable for masking with. No test case unfortunately as i couldn't find a target which fit all the conditions needed to hit this code. llvm-svn: 163075
* PR13689: Check for backtrace(3) in the cmake build.Benjamin Kramer2012-09-012-1/+2
| | | | llvm-svn: 163074
* Limit domain conversion to cases where it won't break dep chains.Tim Northover2012-09-011-12/+48
| | | | | | | | NEON domain conversion was too heavy-handed with its widened registers, which could have stripped existing instructions of their dependency, leaving them vulnerable to scheduling errors. llvm-svn: 163070
* Revert "Take account of boolean vector contents when promoting a build ↵Pete Cooper2012-09-012-33/+1
| | | | | | | | | | | | | | vector from i1 to some other type. rdar://problem/12210060" This reverts commit 5dd9e214fb92847e947f9edab170f9b4e52b908f. Thanks to Duncan for explaining how this should have been done. Conflicts: test/CodeGen/X86/vec_select.ll llvm-svn: 163064
* Fix Thumb2 fixup kind in the integrated-as.Logan Chien2012-09-012-0/+27
| | | | llvm-svn: 163063
* Add ARM ELF support to llvm-objdump.Logan Chien2012-09-011-0/+138
| | | | llvm-svn: 163062
* Code cleanup: tools/opt/opt.cppLogan Chien2012-09-011-4/+0
| | | | | | Remove unused local variable. llvm-svn: 163061
* Fix typo.Logan Chien2012-09-011-1/+1
| | | | llvm-svn: 163059
* LoopRotation: Check some invariants of the dominator updating code.Benjamin Kramer2012-09-011-0/+3
| | | | llvm-svn: 163058
* TyposCraig Topper2012-09-012-2/+2
| | | | llvm-svn: 163053
* Teach DAG combine a number of tricks to simplify FMA expressions in ↵Owen Anderson2012-09-012-0/+124
| | | | | | fast-math mode. llvm-svn: 163051
* Fix typoMichael Liao2012-09-011-1/+1
| | | | llvm-svn: 163049
* llvm/test/CodeGen/X86/fp-fast.ll: Suppress FMA4 on AMD Bulldozer host, ↵NAKAMURA Takumi2012-09-011-1/+1
| | | | | | corresponding to r162999. llvm-svn: 163041
* Fix Atom bots for r163036.Manman Ren2012-09-011-1/+12
| | | | llvm-svn: 163040
* SelectionDAG: when constructing VZEXT_LOAD from other loads, make sure itsManman Ren2012-08-312-3/+43
| | | | | | | | | | | output chain is correctly setup. As an example, if the original load must happen before later stores, we need to make sure the constructed VZEXT_LOAD is constrained to be before the stores. rdar://11457792 llvm-svn: 163036
* Mark FMA4 instructions as commutable and add them to the folding tables.Craig Topper2012-08-313-0/+93
| | | | llvm-svn: 163035
* Make sure to build libpthread to check for HAVE_PTHREAD_MUTEX_LOCK.Eric Christopher2012-08-311-3/+1
| | | | | | Patch by Brad Smith! llvm-svn: 163033
* Remove an unused argument. The MCInst opcode is set in the ConvertToMCInst()Chad Rosier2012-08-312-48/+43
| | | | | | function nowadays. llvm-svn: 163030
* Add selection of RegOp2MemOpTable3 to canFoldMemoryOperandCraig Topper2012-08-311-0/+2
| | | | llvm-svn: 163029
* Add MachineInstr::tieOperands, remove setIsTied().Jakob Stoklund Olesen2012-08-314-20/+31
| | | | | | | | | | | Manage tied operands entirely internally to MachineInstr. This makes it possible to change the representation of tied operands, as I will do shortly. The constraint that tied uses and defs must be in the same order was too restrictive. llvm-svn: 163021
* Fix PR12359Michael Liao2012-08-312-3/+15
| | | | | | | | | - In addition to undefined, if V2 is zero vector, skip 2nd PSHUFB and POR as well as PSHUFB will zero elements with negative indices. Patch by Sriram Murali <sriram.murali@intel.com> llvm-svn: 163018
* The instruction DINS may be transformed into DINSU or DEXTM dependingJack Carter2012-08-315-23/+60
| | | | | | | | | | | | | | | | | | | | | on the size of the extraction and its position in the 64 bit word. This patch allows support of the dext transformations with mips64 direct object output. 0 <= msb < 32 0 <= lsb < 32 0 <= pos < 32 1 <= size <= 32 DINS The field is entirely contained in the right-most word of the doubleword 32 <= msb < 64 0 <= lsb < 32 0 <= pos < 32 2 <= size <= 64 DINSM The field straddles the words of the doubleword 32 <= msb < 64 32 <= lsb < 64 32 <= pos < 64 1 <= size <= 32 DINSU The field is entirely contained in the left-most word of the doubleword llvm-svn: 163010
* Move the GCOVFormat enums into their own namespace per the LLVM coding standard.Bill Wendling2012-08-312-24/+26
| | | | llvm-svn: 163008
* Add a comment to explain what's really going on.Chad Rosier2012-08-311-0/+6
| | | | llvm-svn: 163005
* The ConvertToMCInst() function can't fail, so remove the now dead ↵Chad Rosier2012-08-314-9/+0
| | | | | | Match_ConversionFail enum. llvm-svn: 163002
* Mark FMA3 instructions as commutable so that the operands to the multiply ↵Craig Topper2012-08-312-15/+19
| | | | | | part can be commuted. llvm-svn: 163001
* Use CloneMachineInstr to make a new MI in commuteInstruction to make the ↵Craig Topper2012-08-311-10/+1
| | | | | | code tolerant of instructions with more than two input operands. llvm-svn: 163000
* Add support for converting llvm.fma to fma4 instructions.Craig Topper2012-08-315-36/+121
| | | | llvm-svn: 162999
* Don't enforce ordered inline asm operands.Jakob Stoklund Olesen2012-08-312-10/+9
| | | | | | | | | I was too optimistic, inline asm can have tied operands that don't follow the def order. Fixes PR13742. llvm-svn: 162998
* Clean up ProfileDataLoader a bit.Benjamin Kramer2012-08-312-55/+25
| | | | | | | | | | | | - Overloading operator<< for raw_ostream and pointers is dangerous, it alters the behavior of code that includes the header. - Remove unused ID. - Use LLVM's byte swapping helpers instead of a hand-coded. - Make ReadProfilingData work directly on a pointer. No functionality change. llvm-svn: 162992
* llvm/test/CodeGen/X86/vec_select.ll: Fix failure on xmm-less hosts, to add ↵NAKAMURA Takumi2012-08-311-1/+1
| | | | | | | -mattr=+sse2. FIXME: Should this be tested with both +avx and -avx,+sse2? llvm-svn: 162983
* Cleanups due to feedback. No functionality change. Patch by Alistair.Bill Wendling2012-08-313-64/+64
| | | | llvm-svn: 162979
* Clean up AddedComplexity further after adding UseSSExMichael Liao2012-08-311-17/+13
| | | | llvm-svn: 162973
* Fix a couple of typos in EmitAtomic.Jakob Stoklund Olesen2012-08-312-2/+12
| | | | | | | | | Thumb2 instructions are mostly constrained to rGPR, not tGPR which is for Thumb1. rdar://problem/12203728 llvm-svn: 162968
* X86: Fix encoding of 'movd %xmm0, %rax'Jim Grosbach2012-08-312-1/+5
| | | | | | | The assembly string for the VMOVPQIto64rr instruction incorrectly lacked the 'v' prefix, resulting in mis-assembly of the vanilla movd instruction. llvm-svn: 162963
* With the fix in r162954/162955 every cvt function returns true. Thus, haveChad Rosier2012-08-312-77/+53
| | | | | | | the ConvertToMCInst() return void, rather then a bool. Update all the cvt functions as well. llvm-svn: 162961
* Take account of boolean vector contents when promoting a build vector from ↵Pete Cooper2012-08-302-1/+33
| | | | | | i1 to some other type. rdar://problem/12210060 llvm-svn: 162960
* Try to make this test more generic to unbreak buildbots.Owen Anderson2012-08-301-9/+9
| | | | llvm-svn: 162958
OpenPOWER on IntegriCloud