| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 183982
|
| |
|
|
| |
llvm-svn: 183980
|
| |
|
|
| |
llvm-svn: 183979
|
| |
|
|
|
|
|
| |
was stc2 p0, c0, [r0]!
instead of stc2 p0, c0, [r0,#0]!
llvm-svn: 183975
|
| |
|
|
|
|
|
|
| |
equivalent.
Give it the right register format so we can also emit it when AVX is enabled.
llvm-svn: 183971
|
| |
|
|
| |
llvm-svn: 183968
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a resubmit of r182877, which was reverted because it broken
MCJIT tests on ARM. The patch leaves MCJIT on ARM as it was before: only
enabled for iOS. I've CC'ed people from the original review and revert.
FastISel was only enabled for iOS ARM and Thumb2, this patch enables it
for ARM (not Thumb2) on Linux and NaCl, but not MCJIT.
Thumb2 support needs a bit more work, mainly around register class
restrictions.
The patch punts to SelectionDAG when doing TLS relocation on non-Darwin
targets. I will fix this and other FastISel-to-SelectionDAG failures in
a separate patch.
The patch also forces FastISel to retain frame pointers: iOS always
keeps them for backtracking (so emitted code won't change because of
this), but Linux was getting much worse code that was incorrect when
using big frames (such as test-suite's lencod). I'll also fix this in a
later patch, it will probably require a peephole so that FastISel
doesn't rematerialize frame pointers back-to-back.
The test changes are straightforward, similar to:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130513/174279.html
They also add a vararg test that got dropped in that change.
I ran all of lnt test-suite on A15 hardware with --optimize-option=-O0
and all the tests pass. All the tests also pass on x86 make check-all. I
also re-ran the check-all tests that failed on ARM, and they all seem to
pass.
llvm-svn: 183966
|
| |
|
|
|
|
|
| |
For consistency, change the address in the test case from 0xDEADBEEF to
0xCAFEBABE since 0xCAFEBABE that actually has a 2-byte alignment.
llvm-svn: 183962
|
| |
|
|
| |
llvm-svn: 183960
|
| |
|
|
| |
llvm-svn: 183958
|
| |
|
|
| |
llvm-svn: 183957
|
| |
|
|
| |
llvm-svn: 183955
|
| |
|
|
| |
llvm-svn: 183954
|
| |
|
|
|
|
|
| |
The current functionality is extremely basic and a bit rough around the
edges, but it will flesh out in future commits.
llvm-svn: 183953
|
| |
|
|
| |
llvm-svn: 183950
|
| |
|
|
| |
llvm-svn: 183947
|
| |
|
|
| |
llvm-svn: 183943
|
| |
|
|
| |
llvm-svn: 183941
|
| |
|
|
| |
llvm-svn: 183940
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a preliminary patch for fast instruction selection on
PowerPC. Code generation can differ between DAG isel and fast isel.
Existing tests that specify -O0 were written to expect DAG isel. Make
this explicit by adding -fast-isel=false to the tests.
In some cases specifying -fast-isel=false produces different code even
when there isn't a fast instruction selector specified. This is
because TM.Options.EnableFastISel = 1 at -O0 whether or not a FastISel
object exists. Thus disabling fast isel can actually produce less
conservative code. Because of this, some of the expected code
generation in the -O0 tests needs to be adjusted.
In particular, handling of function arguments is less conservative
with -fast-isel=false (see isOnlyUsedInEntryBlock() in
SelectionDAGBuilder.cpp). This results in fewer stack accesses and,
in some cases, reduced stack size as uselessly loaded values are no
longer stored back to spill locations in the stack.
No functional change with this patch; test case adjustments only.
llvm-svn: 183939
|
| |
|
|
|
|
|
|
|
| |
The test case for this is way too complex to be useful as a lit test,
and I was unable to reduce it.
https://bugs.freedesktop.org/show_bug.cgi?id=65438
llvm-svn: 183937
|
| |
|
|
| |
llvm-svn: 183934
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This pass was assuming that if hasAddressTaken() returns false for a
function, the function's only uses are call sites. That's not true
because there can be references by BlockAddresses too.
Fix the pass to handle this case. Fix
BlockAddress::replaceUsesOfWithOnConstant() to allow a function's type
to be changed by RAUW'ing the function with a bitcast of the recreated
function.
Patch by Mark Seaborn.
llvm-svn: 183933
|
| |
|
|
| |
llvm-svn: 183928
|
| |
|
|
|
|
| |
Backends shouldn't retain any global state. No functionality change.
llvm-svn: 183927
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is in preparation for switching the clang driver over to using LLVM's
Option library. Richard Smith introduced most of these changes to the clang
driver in r167638.
Reviewers: espindola on IRC
Differential Revision: http://llvm-reviews.chandlerc.com/D970
llvm-svn: 183925
|
| |
|
|
| |
llvm-svn: 183921
|
| |
|
|
| |
llvm-svn: 183920
|
| |
|
|
|
|
| |
Now PathV1.h is not needed in GraphWriter.h.
llvm-svn: 183919
|
| |
|
|
| |
llvm-svn: 183915
|
| |
|
|
| |
llvm-svn: 183914
|
| |
|
|
| |
llvm-svn: 183913
|
| |
|
|
| |
llvm-svn: 183912
|
| |
|
|
| |
llvm-svn: 183909
|
| |
|
|
| |
llvm-svn: 183908
|
| |
|
|
| |
llvm-svn: 183907
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Execute's Data parameter is now optional, so we won't allocate memory
for it on Windows and we'll close the process handle.
The Unix code should probably do something similar to avoid accumulation
of zombie children that haven't been waited on.
Tested on Linux and Windows.
llvm-svn: 183906
|
| |
|
|
| |
llvm-svn: 183904
|
| |
|
|
|
|
|
| |
operator<< so that functions are printed as just their name instead of as their
entire definition, which is excessively verbose in this context.
llvm-svn: 183871
|
| |
|
|
| |
llvm-svn: 183868
|
| |
|
|
| |
llvm-svn: 183866
|
| |
|
|
| |
llvm-svn: 183865
|
| |
|
|
|
|
|
| |
It was only used to implement ExecuteAndWait and ExecuteNoWait. Expose just
those two functions and make Execute and Wait implementations details.
llvm-svn: 183864
|
| |
|
|
|
|
|
| |
Now that the PRED_BAD has been removed, this is failing the Clang
-Werror build due to -Wcovered-switch-default.
llvm-svn: 183863
|
| |
|
|
|
|
| |
This is a temporary stepping stone for moving them out of Program.
llvm-svn: 183860
|
| |
|
|
|
|
|
|
| |
I'm taking David Blaikie's suggestion to use an
Optional<PPC::Predicate> return value instead. That's the right
solution for this problem. Thanks for pointing out that possibility!
llvm-svn: 183858
|
| |
|
|
|
|
|
| |
Introducing PRED_BAD caused some unexpected warnings that are now
suppressed.
llvm-svn: 183854
|
| |
|
|
|
|
|
|
|
|
|
|
| |
These records are mandatory for executables and are used by the loader.
Reviewers: rafael
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D939
llvm-svn: 183852
|
| |
|
|
|
|
| |
Should fix the dragonegg build bots.
llvm-svn: 183845
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a preparatory patch for fast-isel support. The instruction
selector will need to access some functions in PPCGenCallingConv.inc,
which in turn requires several helper functions to be defined. These
are currently defined near the only use of PCCGenCallingConv.inc,
inside PPCISelLowering.cpp. This patch moves the declaration of the
functions into the associated header file to provide the needed
visibility.
No functional change intended.
llvm-svn: 183844
|