| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
scheduled for processing on the worklist eventually gets deleted while
we are processing another alloca, fixing the original test case in
PR13990.
To facilitate this, add a remove_if helper to the SetVector abstraction.
It's not easy to use the standard abstractions for this because of the
specifics of SetVectors types and implementation.
Finally, a nice small test case is included. Thanks to Benjamin for the
fantastic reduced test case here! All I had to do was delete some empty
basic blocks!
llvm-svn: 165065
|
| |
|
|
|
|
|
| |
also makes it more consistent with Clang and several passes' doxygen
style.
llvm-svn: 165064
|
| |
|
|
| |
llvm-svn: 165063
|
| |
|
|
|
|
|
| |
The new algorithm has been enabled by default for almost a week now and
seems to be stable.
llvm-svn: 165062
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the Symbols::LocateExecutableObjectFile method to locate kexts and
kernels instead of copying them out of the memory of the remote
system. This is the fix for <rdar://problem/12416384>.
Fix a variable shadowing problem in
Symbols::LocateMacOSXFilesUsingDebugSymbols which caused the symbol
rich executable binaries to not be found even if they were listed
in the dSYM Info.plist.
Change Symbols::DownloadObjectAndSymbolFile to ignore dsymForUUID's
negative cache - this is typically being called by the user and we
should try even if there's a incorrect entry in the negative cache.
llvm-svn: 165061
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Reserved register live ranges look like a set of dead defs - any uses of
reserved registers are ignored.
Instead of skipping the updating of reserved register operands entirely,
just ignore the use operands and treat the def operands normally.
No test case, handleMove() is not commonly used yet.
llvm-svn: 165060
|
| |
|
|
| |
llvm-svn: 165059
|
| |
|
|
|
|
|
| |
A Sema lookup is used to determine the size of the variable, which is in turn
used during wildcard matching.
llvm-svn: 165058
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
of operand is specific to MS-style inline assembly and should not be generated
when parsing normal assembly.
The purpose of the wildcard operands are to allow the AsmParser to match
multiple instructions (i.e., MCInsts) to a given ms-style asm statement. For
the time being the matcher just returns the first match. This patch only
implements wildcard matches for memory operands. Support for register
wildcards will be added in the near future.
llvm-svn: 165057
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
JoinVals::pruneValues() calls LIS->pruneValue() to avoid conflicts when
overlapping two different values. This produces a set of live range end
points that are used to reconstruct the live range (with SSA update)
after joining the two registers.
When a value is pruned twice, the set of end points was insufficient:
v1 = DEF
v1 = REPLACE1
v1 = REPLACE2
KILL v1
The end point at KILL would only reconstruct the live range from
REPLACE2 to KILL, leaving the range REPLACE1-REPLACE2 dead.
Add REPLACE2 as an end point in this case so the full live range is
reconstructed.
This fixes PR13999.
llvm-svn: 165056
|
| |
|
|
| |
llvm-svn: 165055
|
| |
|
|
| |
llvm-svn: 165054
|
| |
|
|
| |
llvm-svn: 165053
|
| |
|
|
|
|
|
| |
prologue. Also skip frame setup instructions when looking for the
first location.
llvm-svn: 165052
|
| |
|
|
| |
llvm-svn: 165051
|
| |
|
|
|
|
| |
in the block.
llvm-svn: 165050
|
| |
|
|
|
|
|
| |
with just an insert point from the MachineBasicBlock and let
the location be updated as we access it.
llvm-svn: 165049
|
| |
|
|
|
|
| |
and llvm-readobj work.
llvm-svn: 165048
|
| |
|
|
|
|
|
| |
as key instead of a SLocEntry pointer. This allows the array of
file sorted declarations in a PCH/module to be deterministic.
llvm-svn: 165047
|
| |
|
|
|
|
| |
declarations of the current primary module.
llvm-svn: 165046
|
| |
|
|
| |
llvm-svn: 165045
|
| |
|
|
|
|
| |
an intermediate helper method to query and populate the Optional value.
llvm-svn: 165043
|
| |
|
|
| |
llvm-svn: 165042
|
| |
|
|
|
|
|
|
|
| |
table, making it printable with the ConfigDump checker. Along the
way, fix a really serious bug where the value was getting parsed
from the string in code that was in an assert() call. This means
in a Release-Asserts build this code wouldn't work as expected.
llvm-svn: 165041
|
| |
|
|
|
|
|
| |
the config string table. Also setup a test for dumping the analyzer
configuration for C++.
llvm-svn: 165040
|
| |
|
|
|
|
| |
to XML output. // rdar://12378879
llvm-svn: 165039
|
| |
|
|
| |
llvm-svn: 165038
|
| |
|
|
|
|
|
|
|
| |
This pass implements a new code generator that uses the code generation
algorithm included in isl.
For the moment the new code generation is limited to sequential code.
llvm-svn: 165037
|
| |
|
|
| |
llvm-svn: 165036
|
| |
|
|
| |
llvm-svn: 165035
|
| |
|
|
| |
llvm-svn: 165034
|
| |
|
|
|
|
| |
generic relational operators.
llvm-svn: 165033
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We require that the indices into the use lists are stable in order to
build fast lookup tables to locate a particular partition use from an
operand of a PHI or select. This is (obviously in hind sight)
incompatible with erasing elements from the array. Really, we don't want
to erase anyways. It is expensive, and a rare operation. Instead, simply
weaken the contract of the PartitionUse structure to allow null Use
pointers to represent dead uses. Now we can clear out the pointer to
mark things as dead, and all it requires is adding some 'continue'
checks to the various loops.
I'm still reducing a test case for this, as the test case I have is
huge. I think this one I can get a nice test case for though, as it was
much more deterministic.
llvm-svn: 165032
|
| |
|
|
|
|
|
|
| |
pointer size
directives (e.g., dword ptr [eax]).
llvm-svn: 165031
|
| |
|
|
|
|
| |
This adds 'elf' as a recognized target triple environment value and overrides the default generated object format on Windows platforms if that value is present. This patch also enables MCJIT tests on Windows using the new environment value.
llvm-svn: 165030
|
| |
|
|
|
|
| |
<rdar://problem/12401423>
llvm-svn: 165029
|
| |
|
|
|
|
|
|
|
|
| |
clang specifying a temporary file that it later cleans up so that it can survive
the linking stage. However, when we compile object files during LTO we don't
call 'dsymutil'. That's done at a different stage (if at all). We rely upon the
linker to specify a unique name for the temporary file it generates.
<rdar://problem/12401423>
llvm-svn: 165028
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
being separate was that it can grow the use list. As a consequence, we
can't use the iterator-pair interface, we need an index based interface.
Expose such an interface from the AllocaPartitioning, and use it in the
speculator.
This should at least fix a use-after-free bug found by Duncan, and may
fix some of the other crashers.
I don't have a nice deterministic test case yet, but if I get a good
one, I'll add it.
llvm-svn: 165027
|
| |
|
|
| |
llvm-svn: 165026
|
| |
|
|
| |
llvm-svn: 165025
|
| |
|
|
| |
llvm-svn: 165024
|
| |
|
|
|
|
| |
entities of the current primary module.
llvm-svn: 165023
|
| |
|
|
|
|
| |
resulted in an automatic module import.
llvm-svn: 165022
|
| |
|
|
|
|
| |
make sure that it gets enabled for when a module needs to be created.
llvm-svn: 165021
|
| |
|
|
|
|
| |
info about imported modules.
llvm-svn: 165020
|
| |
|
|
| |
llvm-svn: 165019
|
| |
|
|
|
|
| |
Instead, print the correct address at runtime.
llvm-svn: 165018
|
| |
|
|
|
|
|
| |
the add/sub case since in the case of multiplication you also have to check that
the operation in the larger type did not overflow.
llvm-svn: 165017
|
| |
|
|
|
|
| |
convention code is target-specific.
llvm-svn: 165016
|
| |
|
|
|
|
|
|
| |
is allowed or ignored with warning. This allows for correct name mangling for x64 targets on Windows, which in turn allows for linking against the Win32 APIs.
Fixes PR13782
llvm-svn: 165015
|