| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 191965
|
| |
|
|
| |
llvm-svn: 191964
|
| |
|
|
|
|
|
|
| |
optimizeSelect folds (predicated) copy instructions, it must not ignore
the original register class of the operand when replacing the register
with the copies dest register.
llvm-svn: 191963
|
| |
|
|
|
|
|
|
|
| |
The jump doesn't really kill the registers, the following call does but
we never get back anyway.
This avoids some verify-machineinstrs problems when TAILJUMPs are
if-converted.
llvm-svn: 191962
|
| |
|
|
|
|
|
| |
Copy over the whole register machine operand instead of creating a new one
with an incomplete set of flags.
llvm-svn: 191961
|
| |
|
|
| |
llvm-svn: 191960
|
| |
|
|
| |
llvm-svn: 191959
|
| |
|
|
| |
llvm-svn: 191958
|
| |
|
|
| |
llvm-svn: 191957
|
| |
|
|
| |
llvm-svn: 191956
|
| |
|
|
|
|
|
|
| |
within templates and nested within themselves."
This reverts commit r191879. It caused llvm.org/pr17476.
llvm-svn: 191955
|
| |
|
|
|
|
| |
sanitizers
llvm-svn: 191954
|
| |
|
|
|
|
|
|
| |
These IR instructions are undefined when the amount is equal to operand
size, but NEON right shifts support such shifts. Work around that by
emitting a different IR in these cases.
llvm-svn: 191953
|
| |
|
|
| |
llvm-svn: 191952
|
| |
|
|
|
|
| |
general solution.
llvm-svn: 191951
|
| |
|
|
| |
llvm-svn: 191950
|
| |
|
|
|
|
| |
This reverts commit r191942.
llvm-svn: 191949
|
| |
|
|
|
|
| |
used to control building of compiler-rt and libcxx
llvm-svn: 191948
|
| |
|
|
|
|
|
|
|
| |
-static. So do not turn off the PIC flag if -static passed to the
driver in case of MIPS target.
http://llvm.org/bugs/show_bug.cgi?id=14693
llvm-svn: 191947
|
| |
|
|
|
|
| |
It must set thr->in_rtl = 0 before executing user callback.
llvm-svn: 191946
|
| |
|
|
| |
llvm-svn: 191945
|
| |
|
|
| |
llvm-svn: 191944
|
| |
|
|
|
|
| |
across sanitizers
llvm-svn: 191943
|
| |
|
|
| |
llvm-svn: 191942
|
| |
|
|
| |
llvm-svn: 191941
|
| |
|
|
|
|
| |
of MoveChild, CheckSame, MoveParent. Saves 846 bytes from the X86 DAG isel matcher, ~300 from ARM, ~840 from Hexagon.
llvm-svn: 191940
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the case (shown in the attached test) where a member function
definition was emitted into debug info the following could occur:
1) build the debug info for the member function definition
2) in (1), build the debug info for the member function declaration
3) construct and add the member function declaration DIE
4) add it to its context
5) build its context (the type it is a member of)
6) construct the members and add them to the type
7) except don't add member functions because "getOrCreateSubprogram"
adds the function to its parent anyway
8) except we're only partway through building this subprogram
declaration so it hasn't been added yet - but we returned the partially
constructed DIE (since it's already in the MDNode->DIE mapping to avoid
infinitely recursing trying to create the member function DIE)
9) once the type is constructed, add the member function to it
10) now the members are out of order (the member function being defined
is listed as the last member, even though it was declared as the first)
To avoid this, construct the context of the subprogram DIE before we
query to see if it exists. That way we never end up creating it before
creating its context and ending up in this situation.
Alternatively, the type construction that visits/builds all the members
could call something like getOrCreateSubprogram, but that doesn't ever
do the "add to context" step. Then the type building code would always
be responsible for adding members (and the subprogram "addToContextDIE"
would no-op because the context building would have added the subprogram
declaration to the type/context DIE already).
(the test cases updated were overly-sensitive to offsets or abbreviation
numbers. We don't have a nice way to make these tests more robust as yet
- multiline FileCheck matches would be required)
llvm-svn: 191939
|
| |
|
|
| |
llvm-svn: 191938
|
| |
|
|
|
|
|
| |
Re-commit r191910 (reverted in r191936) with layering violation fixed, by
moving the bug categories to StaticAnalyzerCore instead of ...Checkers.
llvm-svn: 191937
|
| |
|
|
| |
llvm-svn: 191936
|
| |
|
|
| |
llvm-svn: 191935
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to be explicit, to prevent horrid things like
std::string a = ConstString("foo")
from taking the path ConstString -> bool -> char
-> std::string.
This fixes, among other things, ClangFunction.
<rdar://problem/15137989>
llvm-svn: 191934
|
| |
|
|
| |
llvm-svn: 191933
|
| |
|
|
|
|
|
|
|
|
| |
Changed the dwarf aranges code to not use getLabelEndName, as it turns out it's not reliable to call that given user-defined section names. Section names can have characters in that aren't representable as symbol names.
The dwarf-aranges test case has been updated to include a special character, to check this.
This fixes pr17416.
llvm-svn: 191932
|
| |
|
|
|
|
|
| |
libsupc++ declares these constructors inline, so we won't necessarily
get a definition for them in the library.
llvm-svn: 191931
|
| |
|
|
| |
llvm-svn: 191930
|
| |
|
|
|
|
| |
was a constant. This has a number of benefits, including producing small immediates (easier to materialize, smaller constant pools) as well as being more likely to allow the fptrunc to fuse with a preceding instruction (truncating selects are unusual).
llvm-svn: 191929
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DIE::addChild had a shortcircuit that silently no-op'd when a child was
readded to the same parent. This hid some quirky/redundant code in
DwarfDebug/CompileUnit. By removing that functionality and replacing it
with an assert I was able to find and cleanup those cases, mostly
centering around adding members to types in various circumstances.
1) The original oddity I noticed while working on type units (which
actually was helping me in the short term, by accident) was the
addToContextOwner call in constructTypeDIE. This call was completely
bogus (why was it only done for non-virtual types? what relevance does
that have at all) and redundant with the more uniform addToContextOwner
made in getOrCreateTypeDIE.
2) If a member function definition was visited (createSubprogramDIE), it
would attempt to build the member function declaration. The declaration
DIE would then be added to its context, but in building the context (the
type for which this function is a member) the members of the type would
be added to the type automatically, so by the time the context was
constructed, the member function was already associated with it.
3) The same as (2) but without the member function being constructed
first. Whenever a type was constructed, the members would be created and
member functions would be created by getOrCreateSubprogramDIE - this
would lead to the subprogram being added to the (incomplete) type
already, then the general member-construction code would add it again.
llvm-svn: 191928
|
| |
|
|
| |
llvm-svn: 191927
|
| |
|
|
|
|
| |
(There's a real implementation for this flag in review.)
llvm-svn: 191926
|
| |
|
|
|
|
| |
Also fix options that were broken in the previous refactorings.
llvm-svn: 191925
|
| |
|
|
| |
llvm-svn: 191924
|
| |
|
|
|
|
|
| |
With -### clang return 0, so we have to use FileCheck to see if there was an
error.
llvm-svn: 191923
|
| |
|
|
|
|
|
|
|
|
|
| |
Generalize the API so we can distinguish symbols that are needed just for a DSO
symbol table from those that are used from some native .o.
The symbols that are only wanted for the dso symbol table can be dropped if
llvm can prove every other dso has a copy (linkonce_odr) and the address is not
important (unnamed_addr).
llvm-svn: 191922
|
| |
|
|
| |
llvm-svn: 191921
|
| |
|
|
| |
llvm-svn: 191920
|
| |
|
|
| |
llvm-svn: 191919
|
| |
|
|
| |
llvm-svn: 191918
|
| |
|
|
| |
llvm-svn: 191917
|
| |
|
|
|
|
|
|
|
|
|
| |
itinerary model in case the target does not supply a scheduling model.
By doing this, targets like cortex-a8 can benefit from the latency printing
feature added in r191859.
This part of <rdar://problem/14687488>.
llvm-svn: 191916
|