- Apr 19, 2013
-
-
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
-
Eli Bendersky authored
llvm-svn: 179793
-
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
-
Eli Bendersky authored
llvm-svn: 179768
-
Chad Rosier authored
llvm-svn: 179765
-
Chad Rosier authored
llvm-svn: 179764
-
Eli Bendersky authored
Patch by Stephen Lin llvm-svn: 179763
-
Chad Rosier authored
llvm-svn: 179761
-
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
-
Michael Gottesman authored
Streamline arc-annotation test (removing some cases which do not add any extra coverage) and set it up to use FileCheck variables to make the test more robust. llvm-svn: 179745
-
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
-
Bill Wendling authored
It's sometimes beneficial to emit a testcase with the old style attribute syntax. Allow someone to do this. <rdar://problem/13563209> llvm-svn: 179735
-
- Apr 17, 2013
-
-
Michael Gottesman authored
llvm-svn: 179729
-
Rafael Espindola authored
* We only ever specialize these templates with an instantiation of ELFType, so we don't need a template template. * Replace LLVM_ELF_COMMA with just passing the individual parameters to the macro. This requires a second macro for when we only have ELFT, but that is still a small win. llvm-svn: 179726
-
Peter Collingbourne authored
Differential Revision: http://llvm-reviews.chandlerc.com/D598 llvm-svn: 179725
-
Chad Rosier authored
llvm-svn: 179724
-
Michael Gottesman authored
llvm-svn: 179721
-