| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D10757
llvm-svn: 240831
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D10706
llvm-svn: 240830
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This way the function symbol points to the start of amd_kernel_code_t
rather than the start of the function.
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D10705
llvm-svn: 240829
|
| |
|
|
|
|
|
|
|
|
| |
If we have a caller that knows a particular argument can never be null, we can exploit this fact while simplifying values in the inline cost analysis. This has the effect of reducing the cost for inlining when a null check is present in the callee, but the value is known non null in the caller. In particular, any dependent control flow can be discounted from the cost estimate.
Note that we use the parameter attributes at the call site to memoize the analysis within the caller's code. The setting of this attribute is done in InstCombine, the inline cost analysis just consumes it. This is intentional and important because we want the inline cost analysis results to be easily cachable themselves. We're not currently doing so, but initial results on LTO indicate this will quickly become important.
Differential Revision: http://reviews.llvm.org/D9129
llvm-svn: 240828
|
| |
|
|
|
|
|
| |
There was no particular reason to return by value in the first place.
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 240826
|
| |
|
|
| |
llvm-svn: 240825
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
If pseudoToMCOpcode failed, we would return the original opcode, so operands
would be swapped, but the instruction would remain the same.
It resulted in LSHLREV a, b ---> LSHLREV b, a.
This fixes Glamor text rendering and
piglit/arb_sample_shading-builtin-gl-sample-mask on VI.
This is a candidate for stable branches.
v2: the test was simplified by Tom Stellard
llvm-svn: 240824
|
| |
|
|
|
|
| |
build.
llvm-svn: 240823
|
| |
|
|
|
|
| |
This uses the new SDNode::op_values() iterator range committed in r240805.
llvm-svn: 240822
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch corresponds to review:
http://reviews.llvm.org/D10637
This is the first round of additions of missing builtins listed in the ABI document. More to come (this builds onto what seurer already addes). This patch adds:
vector signed long long vec_abs(vector signed long long)
vector double vec_abs(vector double)
vector signed long long vec_add(vector signed long long, vector signed long long)
vector unsigned long long vec_add(vector unsigned long long, vector unsigned long long)
vector double vec_add(vector double, vector double)
vector double vec_and(vector bool long long, vector double)
vector double vec_and(vector double, vector bool long long)
vector double vec_and(vector double, vector double)
vector signed long long vec_and(vector signed long long, vector signed long long)
vector double vec_andc(vector bool long long, vector double)
vector double vec_andc(vector double, vector bool long long)
vector double vec_andc(vector double, vector double)
vector signed long long vec_andc(vector signed long long, vector signed long long)
vector double vec_ceil(vector double)
vector bool long long vec_cmpeq(vector double, vector double)
vector bool long long vec_cmpge(vector double, vector double)
vector bool long long vec_cmpge(vector signed long long, vector signed long long)
vector bool long long vec_cmpge(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmpgt(vector double, vector double)
vector bool long long vec_cmple(vector double, vector double)
vector bool long long vec_cmple(vector signed long long, vector signed long long)
vector bool long long vec_cmple(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmplt(vector double, vector double)
vector bool long long vec_cmplt(vector signed long long, vector signed long long)
vector bool long long vec_cmplt(vector unsigned long long, vector unsigned long long)
llvm-svn: 240821
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch corresponds to review:
http://reviews.llvm.org/D10638
This is the back end portion of patch
http://reviews.llvm.org/D10637
It just adds the code gen and intrinsic functions necessary to support that patch to the back end.
llvm-svn: 240820
|
| |
|
|
|
|
|
| |
The body of the loops here only contained asserts. This triggered an unused variable
warning on release builds and -Werror on the bots.
llvm-svn: 240819
|
| |
|
|
| |
llvm-svn: 240818
|
| |
|
|
|
|
| |
This uses the new SDNode::op_values() iterator range committed in r240805.
llvm-svn: 240817
|
| |
|
|
|
|
|
|
| |
Remove stats that we no longer collect after the allocator change.
Use proper constant SizeClassMap::kNumClasses to fix potential buffer
overflow (https://code.google.com/p/address-sanitizer/issues/detail?id=397).
llvm-svn: 240816
|
| |
|
|
|
|
| |
This uses the new SDNode::op_values() iterator range committed in r240805.
llvm-svn: 240815
|
| |
|
|
| |
llvm-svn: 240814
|
| |
|
|
| |
llvm-svn: 240813
|
| |
|
|
|
|
|
|
|
|
|
| |
This flag can be used to produce a map file, which is essentially a list
of objects linked into the final output file together with the RVAs of
their symbols. Because our format differs from MSVC's we expose it as a
separate flag.
Differential Revision: http://reviews.llvm.org/D10773
llvm-svn: 240812
|
| |
|
|
|
|
|
|
|
|
|
| |
X86WindowsTargetObjectFile::getSectionForConstant""
This reverts commit r240793 while fixing how we handle array constant
pool entries.
This fixes PR23966.
llvm-svn: 240811
|
| |
|
|
| |
llvm-svn: 240810
|
| |
|
|
|
|
| |
This uses the new SDNode::op_values() iterator range committed in r240805.
llvm-svn: 240809
|
| |
|
|
|
|
|
|
| |
And generally prefer not to restate TargetTriple.str() over and over.
Differential Revision: http://reviews.llvm.org/D10605
llvm-svn: 240808
|
| |
|
|
| |
llvm-svn: 240807
|
| |
|
|
| |
llvm-svn: 240806
|
| |
|
|
|
|
|
|
|
|
| |
SDNode already had ops() which would iterate over the operands and return
SDUse*. This version instead gets the SDValue's out of the SDUse's so that
we can use foreach in more places.
Reviewed by David Blaikie.
llvm-svn: 240805
|
| |
|
|
| |
llvm-svn: 240804
|
| |
|
|
| |
llvm-svn: 240803
|
| |
|
|
| |
llvm-svn: 240802
|
| |
|
|
|
|
|
| |
http://reviews.llvm.org/D10443
Patch by Geoff Berry.
llvm-svn: 240801
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A patch by Karthik Bhat!
This patch fixes a regression introduced by r224398. Prior to r224398
we were able to analyze the following code in test-include.c and report
a null deref in this case. But post r224398 this analysis is being skipped.
E.g.
// test-include.c
#include "test-include.h"
void test(int * data) {
data = 0;
*data = 1;
}
// test-include.h
void test(int * data);
This patch uses the function body (instead of its declaration) as the location
of the function when deciding if the Decl should be analyzed with path-sensitive
analysis. (Prior to r224398, the call graph was guaranteed to have a definition
when available.)
llvm-svn: 240800
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes the error in ARM.td which stated that Cortex-R5
floating point unit can do only single precision, when it can do double as well.
Reviewers: rengolin
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D10769
llvm-svn: 240799
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Scalar evolution does not propagate the non-wrapping flags to values
that are derived from a non-wrapping induction variable because
the non-wrapping property could be flow-sensitive.
This change is a first attempt to establish the non-wrapping property in
some simple cases. The main idea is to look through the operations
defining the pointer. As long as we arrive to a non-wrapping AddRec via
a small chain of non-wrapping instruction, the pointer should not wrap
either.
I believe that this essentially is what Andy described in
http://article.gmane.org/gmane.comp.compilers.llvm.cvs/220731 as the way
forward.
Reviewers: aschwaighofer, nadav, sanjoy, atrick
Reviewed By: atrick
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D10472
llvm-svn: 240798
|
| |
|
|
|
|
|
| |
The variable 'I' wasn't used when assertions were disabled.
This commit ensures that 'I' is used outside of an assert.
llvm-svn: 240797
|
| |
|
|
|
|
| |
Fixes a miscompilation of MultiSource/Benchmarks/MallocBench/gs
llvm-svn: 240796
|
| |
|
|
|
|
|
|
| |
Patch by Matthew Barney. Thanks!
Differential Revision: http://reviews.llvm.org/D9514
llvm-svn: 240795
|
| |
|
|
|
|
|
|
|
|
| |
VectorUtils.h non-static and defined out of line
Patch by Ashutosh Nema
Differential Revision: http://reviews.llvm.org/D10682
llvm-svn: 240794
|
| |
|
|
|
|
| |
It seems to have caused PR23966: "UNREACHABLE executed at ..\lib\Target\X86\X86TargetObjectFile.cpp:148"
llvm-svn: 240793
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit serializes machine basic block operands. The
machine basic block operands use the following syntax:
%bb.<id>[.<name>]
This commit also modifies the YAML representation for the
machine basic blocks - a new, required field 'id' is added
to the MBB YAML mapping.
The id is used to resolve the MBB references to the
actual MBBs. And while the name of the MBB can be
included in a MBB reference, this name isn't used to
resolve MBB references - as it's possible that multiple
MBBs will reference the same BB and thus they will have the
same name. If the name is specified, the parser will verify
that it is equal to the name of the MBB with the specified id.
Reviewers: Duncan P. N. Exon Smith
Differential Revision: http://reviews.llvm.org/D10608
llvm-svn: 240792
|
| |
|
|
|
|
|
|
|
| |
Nothing was hand edited afterward except a few literal strings
and comments that were poorly broken.
Differential Revision: http://reviews.llvm.org/D10689
llvm-svn: 240791
|
| |
|
|
|
|
| |
Now the rela class inherits from rel and just adds the addend.
llvm-svn: 240790
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SUMMARY
Flakey tests get two chances to pass
Also, switched a bunch of tests to use new decorator.
TEST PLAN
Add one of these decorators to a test
Edit a test to pass on the first invocation, confirm test appears as pass
Edit a test to pass on the first invocation, pass on the second, confirm test appears as xfail
Edit a test to fail on two consecutive runs, confirm test appears in results as fail/error
Differential Revision: http://reviews.llvm.org/D10721
llvm-svn: 240789
|
| |
|
|
|
|
| |
Allows more aggressive folding of ashr/shl pairs.
llvm-svn: 240788
|
| |
|
|
|
|
|
| |
Instcombine also does this but many opportunities only become visible
after GEPs are lowered.
llvm-svn: 240787
|
| |
|
|
|
|
| |
initialized but not used; NFC. This bug has been reported to Microsoft (https://connect.microsoft.com/VisualStudio/feedback/details/1475983).
llvm-svn: 240786
|
| |
|
|
| |
llvm-svn: 240785
|
| |
|
|
| |
llvm-svn: 240784
|
| |
|
|
| |
llvm-svn: 240783
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This only adds support for ULW of an immediate address with/without a source register.
It does not include support for ULW of the address of a symbol.
Reviewers: dsanders
Reviewed By: dsanders
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D9663
llvm-svn: 240782
|
| |
|
|
| |
llvm-svn: 240781
|