summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [ms-inline asm] Move this variable into the scope in which it is used.Chad Rosier2013-04-191-1/+1
| | | | llvm-svn: 179866
* [ms-inline asm] Make this a hard error.Chad Rosier2013-04-191-4/+4
| | | | llvm-svn: 179865
* ConstantFolding: ComputeMaskedBits wants the scalar size for vectors.Benjamin Kramer2013-04-192-1/+10
| | | | | | Fixes PR15791. llvm-svn: 179859
* [ms-inline asm] Cleanup the dot operator implementation.Chad Rosier2013-04-191-29/+15
| | | | llvm-svn: 179856
* ARM: Permit "sp" in ARM variant of STREXD instructionsTim Northover2013-04-192-2/+3
| | | | | | Patch from Mihail Popa llvm-svn: 179854
* refactor the struct byte swapping to a helper function.Rafael Espindola2013-04-191-70/+20
| | | | llvm-svn: 179851
* Only run the tests in test/Object/ARM if we have ARM support.Rafael Espindola2013-04-191-0/+3
| | | | llvm-svn: 179850
* Attributes: Don't print trailing whitespace on the function attribute comment.Benjamin Kramer2013-04-192-5/+13
| | | | llvm-svn: 179849
* Don't read one command past the end.Rafael Espindola2013-04-194-4/+16
| | | | | | | | | Thanks to Evgeniy Stepanov for reporting this. It might be a good idea to add a command iterator abstraction to MachO.h, but this fixes the bug for now. llvm-svn: 179848
* ARM: permit "sp" in ARM variants of MOVW/MOVT instructionsTim Northover2013-04-192-2/+9
| | | | llvm-svn: 179847
* Revert 179826. Tests were worthless.Jakub Staszak2013-04-192-2/+2
| | | | llvm-svn: 179845
* Revert "PR14606: debug info imported_module support"Eric Christopher2013-04-1990-223/+103
| | | | | | This reverts commit r179836 as it seems to have caused test failures. llvm-svn: 179840
* PR14606: debug info imported_module supportDavid Blaikie2013-04-1990-103/+223
| | | | | | | | | | Adding another CU-wide list, in this case of imported_modules (since they should be relatively rare, it seemed better to add a list where each element had a "context" value, rather than add a (usually empty) list to every scope). This takes care of DW_TAG_imported_module, but to fully address PR14606 we'll need to expand this to cover DW_TAG_imported_declaration too. llvm-svn: 179836
* Add support for index resources (for a SlotIndex) to be relinquished.Lang Hames2013-04-191-1/+48
| | | | | | | | | | | | | | | When the SlotIndexes pass was introduced it was intended to support insertion of code during register allocation. Removal of code was a minor consideration (and raised the question of what to do about dangling SlotIndex objects pointing to the erased index), so I opted to keep all indexes around indefinitely and simply null out those that weren't being used. Nowadays people are moving more code around (e.g. via HandleMove), which means more zombie indexes. I want to start killing off indexes when we're done with them to reclaim the resources they use up. llvm-svn: 179834
* Use 'array_lengthof' as possible to avoid magic numbersMichael Liao2013-04-191-23/+32
| | | | llvm-svn: 179833
* R600: Add pattern for the BFI_INT instructionTom Stellard2013-04-194-0/+58
| | | | llvm-svn: 179830
* R600/SI: Use InstFlag for VOP3 modifier operandsTom Stellard2013-04-192-15/+14
| | | | | | | InstFlag has a default value of 0 and will simplify the VOP3 patterns. Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 179829
* R600: Reorganize lit tests and document how they should be organizedTom Stellard2013-04-1929-128/+174
| | | | llvm-svn: 179828
* Keep coding stanard. Don't use "else if" after "return".Jakub Staszak2013-04-191-3/+4
| | | | llvm-svn: 179826
* Don't run expensive -O2 and -O3 in tests.Jakub Staszak2013-04-192-2/+2
| | | | llvm-svn: 179825
* Add some more stats for fast isel vs. SelectionDAG, w.r.t lowering functionEli Bendersky2013-04-191-1/+10
| | | | | | arguments in entry BBs. llvm-svn: 179824
* Use an enum instead of magic constants to improve readability.Bill Wendling2013-04-192-16/+44
| | | | llvm-svn: 179820
* Implement a better fix for PR15185.Bill Wendling2013-04-181-6/+11
| | | | | | | If the return type is a pointer and the call returns an integer, then do the inttoptr convertions. And vice versa. llvm-svn: 179817
* Relax this assert. It may not hold in all cases.Bill Wendling2013-04-181-1/+1
| | | | llvm-svn: 179814
* [ms-inline asm] Apply the condition code mnemonic aliases to both the Intel andChad Rosier2013-04-182-1/+31
| | | | | | | AT&T dialect. Test case for r179804 as well. rdar://13674398 and PR13340. llvm-svn: 179813
* Assert if we're trying to generate a null compact unwind entry.Bill Wendling2013-04-181-4/+2
| | | | llvm-svn: 179809
* Set the compact unwind encoding to 'requires EH DWARF' if we cannot generate ↵Bill Wendling2013-04-181-9/+9
| | | | | | a CU encoding. llvm-svn: 179808
* Disable PPC comparison optimization by defaultHal Finkel2013-04-182-1/+7
| | | | | | | This seems to cause a stage-2 LLVM compile failure (by crashing TableGen); do I'm disabling this for now. llvm-svn: 179807
* [asm parser] Add support for predicating MnemonicAlias based on the assemblerChad Rosier2013-04-185-88/+130
| | | | | | | | variant/dialect. Addresses a FIXME in the emitMnemonicAliases function. Use and test case to come shortly. rdar://13688439 and part of PR13340. llvm-svn: 179804
* Implement optimizeCompareInstr for PPCHal Finkel2013-04-183-0/+413
| | | | | | | | | | | | | | | Many PPC instructions have a so-called 'record form' which stores to a specific condition register the result of comparing the result of the instruction with zero (always as a signed comparison). For integer operations on PPC64, this is always a 64-bit comparison. This implementation is derived from the implementation in the ARM backend; there are some differences because PPC condition registers are allocatable virtual registers (although the record forms always use a specific one), and we look for a matching subtraction instruction after the compare (but before the first use) in addition to before it. llvm-svn: 179802
* Make the TargetIndependent flag have the right boolean value.Bill Wendling2013-04-183-5/+5
| | | | llvm-svn: 179798
* X86: Add an SSE2 lowering for 64 bit compares when pcmpgtq (SSE4.2) isn't ↵Benjamin Kramer2013-04-182-15/+176
| | | | | | | | available. This pattern started popping up in vectorized min/max reductions. llvm-svn: 179797
* Fix typoEli Bendersky2013-04-181-1/+1
| | | | llvm-svn: 179793
* Cleanup patch:Bill Wendling2013-04-183-71/+71
| | | | | | | | | | | | | | | Semantics of parameters named Index and Idx were inconsistent between "include/llvm/IR/Attributes.h", "lib/IR/AttributeImpl.h" and "lib/IR/Attributes.cpp": sometimes these were fixed 1-based indexes of IR parameters (or AttributeSet::ReturnIndex for IR return values or AttributeSet::FunctionIndex for IR functions), other times they were the internal slot for storage in the underlying AttributeSetImpl. I renamed usage of the former to "Index" and usage of the latter to "Slot" ("Slot" was already being used consistently for the latter in a subset of cases) Patch by Stephen Lin! llvm-svn: 179791
* This patch addresses two cleanup issues:Bill Wendling2013-04-183-111/+71
| | | | | | | | | | | | | | | | 1. Verify::VerifyParameterAttrs in "lib/IR/Verifier.cpp" and AttrBuilder::removeFunctionOnlyAttrs in "lib/IR/Attributes.cpp" (only called by Verify::VerifyFunctionAttrs) separately maintained a list of function-only attribute types. I've consolidated the logic into a new function used for both cases in "lib/IR/Verifier.cpp", so this logic is in one place (other than the AsmParser front-end) 2. Various functions in "lib/IR/Verifier.cpp" passed AttributeSet around by reference needlessly, as it's just a handle to an immutable pimpl body. Patch by Stephen Lin! llvm-svn: 179790
* Fix a -Wdocumentation warningDmitri Gribenko2013-04-181-1/+1
| | | | llvm-svn: 179789
* In the function InstCombiner::visitExtractElementInst() removed the ↵Anat Shemer2013-04-182-4/+16
| | | | | | limitation that extract is promoted over a cast only if the cast has only one use. llvm-svn: 179786
* C API: Fix coding styleTom Stellard2013-04-182-2/+2
| | | | llvm-svn: 179785
* Added a function scalarizePHI() that sclarizes a vector phi instruction if ↵Anat Shemer2013-04-183-0/+105
| | | | | | it has only 2 uses: one to promote the vector phi in a loop and the other use is an extract operation of one element at a constant location. llvm-svn: 179783
* Fix comment. Patch by Stephen Lin.Bill Wendling2013-04-181-2/+3
| | | | llvm-svn: 179780
* At Jim Grosbach's request detemplate Object/MachO.h.Rafael Espindola2013-04-1811-1755/+2039
| | | | | | | We are still able to handle mixed endian objects by swapping one struct at a time. llvm-svn: 179778
* Fix a comment, PR15777.Chris Lattner2013-04-181-2/+2
| | | | llvm-svn: 179775
* Allow misaligned stores in x86 fast-isel.Derek Schuff2013-04-182-5/+18
| | | | | | | | | | | | In X86FastISel::X86SelectStore(), improperly aligned stores are rejected and handled by the DAG-based ISel. However, X86FastISel::X86SelectLoad() makes no such requirement. There doesn't appear to be an x86 architectural correctness issue with allowing potentially unaligned store instructions. This patch removes this restriction. Patch by Jim Stichnot. llvm-svn: 179774
* LoopVectorizer: Recognize min/max reductionsArnold Schwaighofer2013-04-182-34/+608
| | | | | | | | | | | | A min/max operation is represented by a select(cmp(lt/le/gt/ge, X, Y), X, Y) sequence in LLVM. If we see such a sequence we can treat it just as any other commutative binary instruction and reduce it. This appears to help bzip2 by about 1.5% on an imac12,2. radar://12960601 llvm-svn: 179773
* Fix grammar in LLVMBuild.rstEli Bendersky2013-04-181-2/+2
| | | | llvm-svn: 179768
* [ms-inline asm] Simplify some logic and add a FIXME for unhandled unary minus.Chad Rosier2013-04-181-10/+13
| | | | llvm-svn: 179765
* Make this private method.Chad Rosier2013-04-181-4/+4
| | | | llvm-svn: 179764
* Fixes to LangRef.rst: incorrect attributes syntax and misplaced 'nobuiltin'Eli Bendersky2013-04-181-7/+8
| | | | | | Patch by Stephen Lin llvm-svn: 179763
* Fix comment spacing.Chad Rosier2013-04-181-2/+2
| | | | llvm-svn: 179761
* LoopVectorize: Use a set to avoid longer cycles in the reduction chain too.Benjamin Kramer2013-04-182-8/+24
| | | | | | Fixes PR15748. llvm-svn: 179757
OpenPOWER on IntegriCloud