| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Make this conservatively correct and report false for different
address spaces, which might require a nontrivial translation.
Based on the few uses of this, I don't think this currently
breaks anything.
llvm-svn: 216846
|
| |
|
|
|
|
| |
handling the subprogram scope (replacing a conditional with an assertion in the process)
llvm-svn: 216845
|
| |
|
|
| |
llvm-svn: 216844
|
| |
|
|
| |
llvm-svn: 216843
|
| |
|
|
| |
llvm-svn: 216842
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
due to incompatibility of attribute(thiscall).
With targeting i686-win32,
error: 'error' diagnostics seen but not expected:
File clang/test/CXX/drs/dr5xx.cpp Line 521: implicit instantiation of undefined template 'dr547::X<void () __attribute__((thiscall)) const>'
File clang/test/CXX/drs/dr5xx.cpp Line 518: implicit instantiation of undefined template 'dr547::X<void () __attribute__((thiscall)) const>'
File clang/test/CXX/drs/dr5xx.cpp Line 518: implicit instantiation of undefined template 'dr547::X<void () __attribute__((thiscall)) const>'
error: 'note' diagnostics seen but not expected:
File clang/test/CXX/drs/dr5xx.cpp Line 516: template is declared here
File clang/test/CXX/drs/dr5xx.cpp Line 521: in instantiation of function template specialization 'dr547::f<void () __attribute__((thiscall)) const, dr547::S>' requested here
File clang/test/CXX/drs/dr5xx.cpp Line 516: template is declared here
File clang/test/CXX/drs/dr5xx.cpp Line 516: template is declared here
7 errors generated.
llvm-svn: 216841
|
| |
|
|
|
|
|
|
|
|
| |
check for "this scope has nothing in it"
This makes the emptiness of the scope with regards to variables and
nested scopes is the same as with regards to imported entities. Just
check if we had nothing at all before we build the node.
llvm-svn: 216840
|
| |
|
|
|
|
|
|
| |
into the scope
Another step towards improving lexical_scope handling
llvm-svn: 216839
|
| |
|
|
|
|
|
|
|
|
|
| |
DIE rather than inserting it into a specified context.
First of many steps to improve lexical scope construction (to omit
trivial lexical scopes - those without any direct variables). To that
end it's easier not to create imported entities directly into the
lexical scope node, but to build them, then add them if necessary.
llvm-svn: 216838
|
| |
|
|
| |
llvm-svn: 216837
|
| |
|
|
| |
llvm-svn: 216836
|
| |
|
|
| |
llvm-svn: 216834
|
| |
|
|
| |
llvm-svn: 216833
|
| |
|
|
|
|
| |
ArrayRef-of-pointer conversions introduced in r216709
llvm-svn: 216830
|
| |
|
|
|
|
| |
appease msvc. "[def] [free]" can be seen in different order.
llvm-svn: 216829
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This extends the work done in [1], adding missing intrinsic lowering for floor, trunc, round and copysign.
[1] http://comments.gmane.org/gmane.comp.compilers.llvm.cvs/199372
Test Plan: Extended `test/ExecutionEngine/Interpreter/intrinsics.ll` to test the additional missing intrinsics. All tests pass.
Reviewers: dexonsmith
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5120
llvm-svn: 216827
|
| |
|
|
|
|
|
|
|
|
|
| |
This allows streams that only use BLOCKINFO for debugging purposes to omit
the block entirely. As long as another stream is available with the correct
BLOCKINFO, the first stream can still be analyzed and dumped.
As part of this commit, BitstreamReader gets a move constructor and move
assignment operator, as well as a takeBlockInfo method.
llvm-svn: 216826
|
| |
|
|
|
|
| |
const from some other StringRefs since its implicitly const already.
llvm-svn: 216825
|
| |
|
|
|
|
| |
and mentioning the type. This works now that we have a conversion from ArrayRef<T*> to ArrayRef<const T*>.
llvm-svn: 216824
|
| |
|
|
| |
llvm-svn: 216823
|
| |
|
|
| |
llvm-svn: 216822
|
| |
|
|
| |
llvm-svn: 216821
|
| |
|
|
|
|
| |
const from some other StringRefs since its implicitly const already.
llvm-svn: 216820
|
| |
|
|
| |
llvm-svn: 216819
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous implementation of AddAliasScopeMetadata, which adds noalias
metadata to preserve noalias parameter attribute information when inlining had
a flaw: it would add alias.scope metadata to accesses which might have been
derived from pointers other than noalias function parameters. This was
incorrect because even some access known not to alias with all noalias function
parameters could easily alias with an access derived from some other pointer.
Instead, when deriving from some unknown pointer, we cannot add alias.scope
metadata at all. This fixes a miscompile of the test-suite's tramp3d-v4.
Furthermore, we cannot add alias.scope to functions unless we know they
access only argument-derived pointers (currently, we know this only for
memory intrinsics).
Also, we fix a theoretical problem with using the NoCapture attribute to skip
the capture check. This is incorrect (as explained in the comment added), but
would not matter in any code generated by Clang because we get only inferred
nocapture attributes in Clang-generated IR.
This functionality is not yet enabled by default.
llvm-svn: 216818
|
| |
|
|
| |
llvm-svn: 216817
|
| |
|
|
|
|
|
|
|
| |
In Polly we used to have a mix of test cases, some that used 'opt %s' and others
that used 'opt < %s'. We now change all to use 'opt < %s'. Piping in test files
is preferable as it does prevent temporary files to be written to disk. This
brings us in line with what is usus in LLVM.
llvm-svn: 216816
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces the use of %defaultOpts = '-basicaa -polly-prepare' with the
minimal set of passes necessary for a test to succeed. Of the test cases that
previously used %defaultOpts 76 test cases require none of these passes, 42
need -basicaa and only 2 need -polly-prepare. Our change makes this requirement
explicit.
In Polly many test cases have been using a macro '%defaultOpts' which run a
couple of preparing passes before the actual Polly test case. This macro was
introduced very early in the development of Polly and originally contained a
large set of canonicalization passes. However, as the need for additional
canonicalization passes makes test cases harder to understand and also more
fragile in terms of changes in such passes, we aim since a longer time to only
include the minimal set of passes necessary. This patch removes the last
leftovers from of %defaultOpts and brings our tests cases more in line to what
is usus in LLVM itself.
llvm-svn: 216815
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
consider: (and (icmp X, Y), (and Z, (icmp A, B)))
It may be possible to combine (icmp X, Y) with (icmp A, B).
If we successfully combine, create an 'and' instruction with Z.
This fixes PR20814.
N.B. There is room for improvement after this change but I'm not
convinced it's worth chasing yet.
llvm-svn: 216814
|
| |
|
|
|
|
|
|
| |
for MADD, SUB, and OR."
I think this broke the build bot. Reverting it for now until I have time to take a closer look.
llvm-svn: 216813
|
| |
|
|
|
|
|
| |
for a different LLVM present in the system header
lookup path.
llvm-svn: 216812
|
| |
|
|
| |
llvm-svn: 216811
|
| |
|
|
|
|
|
| |
way ownership of memory buffers is handled in
clang's SourceManager.
llvm-svn: 216810
|
| |
|
|
| |
llvm-svn: 216809
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MachOObjectFile in lib/Object currently has no support for parsing the rebase,
binding, and export information from the LC_DYLD_INFO load command in final
linked mach-o images. This patch adds support for parsing the exports trie data
structure. It also adds an option to llvm-objdump to dump that export info.
I did the exports parsing first because it is the hardest. The information is
encoded in a trie structure, but the standard ObjectFile way to inspect content
is through iterators. So I needed to make an iterator that would do a
non-recursive walk through the trie and maintain the concatenation of edges
needed for the current string prefix.
I plan to add similar support in MachOObjectFile and llvm-objdump to
parse/display the rebasing and binding info too.
llvm-svn: 216808
|
| |
|
|
|
|
| |
This should make it easier to add more tests to this file.
llvm-svn: 216807
|
| |
|
|
|
|
| |
typedef name for linkage purposes. When loading the type, delay loading its typedef until we've finished loading and merging the type. In its place, save out the name of the typedef, which we need for merging purposes.
llvm-svn: 216806
|
| |
|
|
|
|
|
|
|
|
| |
Select the correct register class for the various instructions that are
generated when combining instructions and constrain the registers to the
appropriate register class.
This fixes rdar://problem/18183707.
llvm-svn: 216805
|
| |
|
|
|
|
|
|
| |
Also constrain the register class for branches.
This fixes rdar://problem/18181496.
llvm-svn: 216804
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When sinking an instruction it might be moved past the original last use of one
of its operands. This last use has the kill flag set and the verifier will
obviously complain about this.
Before Machine Sinking (AArch64):
%vreg3<def> = ASRVXr %vreg1, %vreg2<kill>
%XZR<def> = SUBSXrs %vreg4, %vreg1<kill>, 160, %NZCV<imp-def>
...
After Machine Sinking:
%XZR<def> = SUBSXrs %vreg4, %vreg1<kill>, 160, %NZCV<imp-def>
...
%vreg3<def> = ASRVXr %vreg1, %vreg2<kill>
This fix clears all the kill flags in all instruction that use the same operands
as the instruction that is being sunk.
This fixes rdar://problem/18180996.
llvm-svn: 216803
|
| |
|
|
| |
llvm-svn: 216802
|
| |
|
|
|
|
|
|
|
| |
RuntimeDyldImpl.
These are platform independent, and moving them to the base class allows
RuntimeDyldChecker to use them too.
llvm-svn: 216801
|
| |
|
|
|
|
|
|
| |
from the default for the containing type.
rdar://problem/18154959
llvm-svn: 216800
|
| |
|
|
|
|
|
|
|
|
| |
specifier and change the default behavior to only emit the
DW_AT_accessibility(public) attribute when the isPublic() is explicitly
set.
rdar://problem/18154959
llvm-svn: 216799
|
| |
|
|
| |
llvm-svn: 216798
|
| |
|
|
|
|
| |
enum values
llvm-svn: 216797
|
| |
|
|
| |
llvm-svn: 216796
|
| |
|
|
|
|
|
| |
This adds the printing of the LC_SEGMENT load command and sections,
LC_SYMTAB and LC_DYSYMTAB load commands.
llvm-svn: 216795
|
| |
|
|
| |
llvm-svn: 216794
|
| |
|
|
| |
llvm-svn: 216793
|