| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 208132
|
| |
|
|
|
|
|
|
|
| |
Speculatively reverting due to a suspicious failure on a Windows
buildbot.
This reverts commit 10c37a012ea11596d44cd9059fe09c959caf30c8.
llvm-svn: 208131
|
| |
|
|
| |
llvm-svn: 208130
|
| |
|
|
|
|
|
|
| |
remove it from the list of unspilled registers. Otherwise the following
attempt to keep the stack aligned by picking an extra GPR register to
spill will not work as it picks up r11.
llvm-svn: 208129
|
| |
|
|
|
|
|
|
| |
This removes arguments passed everywhere and allows the use of
standard iteration over lists.
Should be no functional change.
llvm-svn: 208127
|
| |
|
|
|
|
|
| |
Split from the musttail inliner change. This will be covered by an opt
test when the inliner change lands.
llvm-svn: 208126
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
When I initially introduced -pass-remarks, I thought it would be a
neat idea to make it additive. So, if one used it as:
$ llc -pass-remarks=inliner --pass-remarks=loop.*
the compiler would build the regular expression '(inliner)|(loop.*)'.
The more I think about it, the more I regret it. This is not how
other flags work. The standard semantics are right-to-left overrides.
This is how clang interprets -Rpass. And I think the two should be
compatible in this respect.
Reviewers: qcolombet
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D3614
llvm-svn: 208122
|
| |
|
|
|
|
| |
the target.
llvm-svn: 208115
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(and vice versa).
Before this patch, the backend always emitted a store+load sequence to
bitconvert from f64 to i64 the input operand of a ISD::BITCAST dag node that
performed a bitconvert from type MVT::f64 to type MVT::v2i32. The resulting
i64 node was then used to build a v2i32 vector.
With this patch, the backend now produces a cheaper SCALAR_TO_VECTOR from
MVT::f64 to MVT::v2f64. That SCALAR_TO_VECTOR is then followed by a "free"
bitcast to type MVT::v4i32. The elements of the resulting
v4i32 are then extracted to build a v2i32 vector (which is illegal and
therefore promoted to MVT::v2i64).
This is in general cheaper than emitting a stack store+load sequence
to bitconvert the operand from type f64 to type i64.
llvm-svn: 208107
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch implements the infrastructure to use named register constructs in
programs that need access to specific registers (bare metal, kernels, etc).
So far, only the stack pointer is supported as a technology preview, but as it
is, the intrinsic can already support all non-allocatable registers from any
architecture.
llvm-svn: 208104
|
| |
|
|
|
|
|
|
|
| |
An alias has the address of what it points to, so it also has the same
alignment.
This allows a few optimizations to see past aliases for free.
llvm-svn: 208103
|
| |
|
|
|
|
|
|
| |
fall back to the normal path without a cpu. While doing this fix
llc to just exit when we don't have a module to process instead of
asserting.
llvm-svn: 208102
|
| |
|
|
| |
llvm-svn: 208095
|
| |
|
|
|
|
|
| |
The fact that GlobalAlias::setAlignment exists at all is a side effect of
how the classes are organized, it should never be used.
llvm-svn: 208094
|
| |
|
|
| |
llvm-svn: 208091
|
| |
|
|
|
|
|
| |
It doesn't change the results, but it seems silly not to diagnose obvious
problems early on.
llvm-svn: 208083
|
| |
|
|
| |
llvm-svn: 208082
|
| |
|
|
| |
llvm-svn: 208081
|
| |
|
|
|
|
|
| |
No tests here, they'll be added when the entire neon-diagnostics.s test from
AArch64 is enabled.
llvm-svn: 208079
|
| |
|
|
| |
llvm-svn: 208076
|
| |
|
|
|
|
| |
This is the modification in llvm part.
llvm-svn: 208074
|
| |
|
|
| |
llvm-svn: 208064
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
non-temporary copy and using that to RAUW.
Also, provide the ability to create temporary and non-temporary
declarations, as not all declarations may be replaced by definitions
later on.
This provides the necessary infrastructure for Clang to fix PR19598,
leaking temporary MDNodes in Clang's debug info generation.
llvm-svn: 208054
|
| |
|
|
|
|
| |
this reapplies 208012 and 208002.
llvm-svn: 208037
|
| |
|
|
| |
llvm-svn: 208035
|
| |
|
|
|
|
| |
which GCC detects and Clang does not!
llvm-svn: 208033
|
| |
|
|
| |
llvm-svn: 208030
|
| |
|
|
|
|
|
|
|
|
| |
The Win64 docs are very clear that anything larger than 8 bytes is
passed by reference, and GCC MinGW64 honors that for __modti3 and
friends.
Patch by Jameson Nash!
llvm-svn: 208029
|
| |
|
|
|
|
| |
about the use case for the new parameter.
llvm-svn: 208026
|
| |
|
|
|
|
| |
type-erased reference to a callable object.
llvm-svn: 208025
|
| |
|
|
|
|
|
|
|
| |
On x64, windows.h doesn't include intrin.h for intrinsics. It just
declares them in the global namespace and uses them, expecting the
compiler to lower it as a builtin. We basically need to do this in
clang, eventually.
llvm-svn: 208023
|
| |
|
|
|
|
|
|
| |
make sure to zero-initialize the rest
of the buffer if we unexpectedly reach end-of-file while reading.
llvm-svn: 208021
|
| |
|
|
| |
llvm-svn: 208019
|
| |
|
|
|
|
|
|
|
|
| |
calls marked tail in the IR to 470k, however this improvement does not carry into an improvement of the call/jmp ratio on x86. The most common pattern is a tail call + br to a block with nothing but a 'ret'.
The number of tail call to loop conversions remains the same (1618 by my count).
The new algorithm does a local scan over the use-def chains to identify local "alloca-derived" values, as well as points where the alloca could escape. Then, a visit over the CFG marks blocks as being before or after the allocas have escaped, and annotates the calls accordingly.
llvm-svn: 208017
|
| |
|
|
|
|
| |
used via dragonegg for now.
llvm-svn: 208016
|
| |
|
|
|
|
| |
fixed by r207983. <radar://16641956>
llvm-svn: 208013
|
| |
|
|
|
|
| |
and inline it into its caller.
llvm-svn: 208012
|
| |
|
|
|
|
| |
a 0 as a default answer.
llvm-svn: 208009
|
| |
|
|
|
|
|
|
| |
'IsVolatile' for the open file functions.
This provides a hint that the file may be changing often so mmap is avoided.
llvm-svn: 208007
|
| |
|
|
| |
llvm-svn: 208006
|
| |
|
|
| |
llvm-svn: 208005
|
| |
|
|
| |
llvm-svn: 208002
|
| |
|
|
| |
llvm-svn: 207996
|
| |
|
|
|
|
| |
This reverts commit 207992. I misread the phab number on the LGTM.
llvm-svn: 207993
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Also ran clang-format on the function. The code added is the last else
if block.
Reviewers: nadav, craig.topper
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D3518
llvm-svn: 207992
|
| |
|
|
|
|
|
| |
Our OpenGL driver needs 22 SGPRs (16 user SGPRs + 6 streamout non-user SGPRs).
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
llvm-svn: 207990
|
| |
|
|
|
|
| |
<rdar://problem/16812145>
llvm-svn: 207983
|
| |
|
|
|
|
|
|
|
| |
Visibility is meaningless when the linkage is local. Change
`-internalize` to reset the visibility to `default`.
<rdar://problem/16141113>
llvm-svn: 207979
|
| |
|
|
|
|
|
|
|
|
| |
Tested that the right -target-cpu is set in the clang -cc1 command line
when running "clang -march=native -E -v - </dev/null" on both an FX-8150
and an FX-8350. Both are family 15h; the FX-8150 (Bulldozer processor)
reports a model number of 1, and the FX-8350 (Piledriver processor)
reports a model number of 2.
llvm-svn: 207973
|
| |
|
|
|
|
|
|
|
| |
callbacks
See https://code.google.com/p/address-sanitizer/issues/detail?id=305
Reviewed at http://reviews.llvm.org/D3607
llvm-svn: 207968
|