- Apr 19, 2013
-
-
Eric Christopher authored
This reverts commit r179836 as it seems to have caused test failures. llvm-svn: 179840
-
David Blaikie authored
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
-
Michael Liao authored
llvm-svn: 179833
-
Tom Stellard authored
llvm-svn: 179830
-
Tom Stellard authored
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
-
Jakub Staszak authored
llvm-svn: 179826
-
Eli Bendersky authored
arguments in entry BBs. llvm-svn: 179824
-
Bill Wendling authored
llvm-svn: 179820
-
Bill Wendling authored
If the return type is a pointer and the call returns an integer, then do the inttoptr convertions. And vice versa. llvm-svn: 179817
-
Bill Wendling authored
llvm-svn: 179814
-
Chad Rosier authored
AT&T dialect. Test case for r179804 as well. rdar://13674398 and PR13340. llvm-svn: 179813
-
Bill Wendling authored
llvm-svn: 179809
-
Bill Wendling authored
llvm-svn: 179808
-
Hal Finkel authored
This seems to cause a stage-2 LLVM compile failure (by crashing TableGen); do I'm disabling this for now. llvm-svn: 179807
-
Chad Rosier authored
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
-
Hal Finkel authored
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
-
- Apr 18, 2013
-
-
Bill Wendling authored
llvm-svn: 179798
-
Benjamin Kramer authored
This pattern started popping up in vectorized min/max reductions. llvm-svn: 179797
-
Bill Wendling authored
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
-
Bill Wendling authored
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
-
Dmitri Gribenko authored
llvm-svn: 179789
-
Anat Shemer authored
In the function InstCombiner::visitExtractElementInst() removed the limitation that extract is promoted over a cast only if the cast has only one use. llvm-svn: 179786
-
Tom Stellard authored
llvm-svn: 179785
-
Anat Shemer authored
Added a function scalarizePHI() that sclarizes a vector phi instruction if 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
-
Bill Wendling authored
llvm-svn: 179780
-
Rafael Espindola authored
We are still able to handle mixed endian objects by swapping one struct at a time. llvm-svn: 179778
-
Chris Lattner authored
llvm-svn: 179775
-
Derek Schuff authored
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
-
Arnold Schwaighofer authored
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
-
Chad Rosier authored
llvm-svn: 179765
-
Chad Rosier authored
llvm-svn: 179764
-
Benjamin Kramer authored
Fixes PR15748. llvm-svn: 179757
-
Hao Liu authored
llvm-svn: 179751
-
David Majnemer authored
It is causing stage2 builds to fail, let's get them running again. llvm-svn: 179750
-
David Majnemer authored
Simplify: (select (icmp eq (and X, C1), 0), Y, (or Y, C2)) Into: (or (shl (and X, C1), C3), y) Where: C3 = Log(C2) - Log(C1) If: C1 and C2 are both powers of two llvm-svn: 179748
-
Michael Gottesman authored
[objc-arc] Do not mismatch up retains inside a for loop with releases outside said for loop in the presense of differing provenance caused by escaping blocks. This occurs due to an alloca representing a separate ownership from the original pointer. Thus consider the following pseudo-IR: objc_retain(%a) for (...) { objc_retain(%a) %block <- %a F(%block) objc_release(%block) } objc_release(%a) From the perspective of the optimizer, the %block is a separate provenance from the original %a. Thus the optimizer pairs up the inner retain for %a and the outer release from %a, resulting in segfaults. This is fixed by noting that the signature of a mismatch of retain/releases inside the for loop is a Use/CanRelease top down with an None bottom up (since bottom up the Retain-CanRelease-Use-Release sequence is completed by the inner objc_retain, but top down due to the differing provenance from the objc_release said sequence is not completed). In said case in CheckForCFGHazards, we now clear the state of %a implying that no pairing will occur. Additionally a test case is included. rdar://12969722 llvm-svn: 179747
-
Michael Gottesman authored
llvm-svn: 179746
-
Akira Hatanaka authored
llvm-svn: 179741
-
Akira Hatanaka authored
llvm-svn: 179739
-
Jack Carter authored
This patch should not have any functional changes. llvm-svn: 179737
-