| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
readability of the assembly generated.
llvm-svn: 198910
|
| |
|
|
|
|
| |
jmp instructions as aliases to jmpl.
llvm-svn: 198909
|
| |
|
|
|
|
|
|
|
| |
This reverts commit r198865 which reverts r198851.
ASan identified a use-of-uninitialized of the DwarfTypeUnit::Ty variable
in skeleton type units.
llvm-svn: 198908
|
| |
|
|
|
|
|
|
|
| |
branch to the next instruction. This can not be encoded but can be
turned into a NOP.
rdar://15062072
llvm-svn: 198904
|
| |
|
|
|
|
|
| |
contributors to submit patches to the LLVM project. Thanks to Danny,
Chris, Alp, and others for reviewing.
llvm-svn: 198901
|
| |
|
|
| |
llvm-svn: 198894
|
| |
|
|
| |
llvm-svn: 198893
|
| |
|
|
| |
llvm-svn: 198889
|
| |
|
|
|
|
|
|
| |
I would not normally add tests like these, but the copy constructor is not
used at all in our codebase with c++11, so having this tests might prevent
breaking the c++03 build again.
llvm-svn: 198886
|
| |
|
|
|
|
|
|
|
|
|
| |
To declare or define reserved identifers is undefined behaviour in standard
C++. This needs to be addressed in compiler-rt before it can be used in LLVM.
See the list discussion for details.
This reverts commit r198858.
llvm-svn: 198884
|
| |
|
|
|
|
| |
This reverts r198854.
llvm-svn: 198879
|
| |
|
|
| |
llvm-svn: 198872
|
| |
|
|
|
|
| |
It caused undefined behavior. DwarfTypeUnit::Ty might not be initialized properly, I guess.
llvm-svn: 198865
|
| |
|
|
|
|
|
|
|
| |
Detailed description is here:
http://llvm.org/bugs/show_bug.cgi?id=18000#c16
For participation in bugfix process special thanks to David Wiberg.
llvm-svn: 198863
|
| |
|
|
|
|
|
|
| |
The zext handling added in r197802 wasn't right for RNSBG. This patch
restricts it to ROSBG, RXSBG and RISBG. (The tests for RISBG were added
in r197802 since RISBG was the motivating example.)
llvm-svn: 198862
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
At the moment we expect rotates to have the form:
(or (shl X, Y), (shr X, Z))
where Y == bitsize(X) - Z or Z == bitsize(X) - Y. This form means that
the (or ...) is undefined for Y == 0 or Z == 0. This undefinedness can
be avoided by using Y == (C * bitsize(X) - Z) & (bitsize(X) - 1) or
Z == (C * bitsize(X) - Y) & (bitsize(X) - 1) for any integer C
(including 0, the most natural choice).
llvm-svn: 198861
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
InstCombine converts (sub 32, (add X, C)) into (sub 32-C, X),
so a rotate left of a 32-bit Y by X+C could appear as either:
(or (shl Y, (add X, C)), (shr Y, (sub 32, (add X, C))))
without InstCombine or:
(or (shl Y, (add X, C)), (shr Y, (sub 32-C, X)))
with it.
We already matched the first form. This patch handles the second too.
llvm-svn: 198860
|
| |
|
|
| |
llvm-svn: 198858
|
| |
|
|
| |
llvm-svn: 198854
|
| |
|
|
|
|
| |
new in C++11.
llvm-svn: 198853
|
| |
|
|
|
|
|
|
|
|
|
| |
root path to which object files managed by the LLIObjectCache instance should be
written. This option defaults to "", in which case objects are cached in the
same directory as the bitcode they are derived from.
The load-object-a.ll test has been rewritten to use this option to support
testing in environments where the test directory is not writable.
llvm-svn: 198852
|
| |
|
|
| |
llvm-svn: 198851
|
| |
|
|
| |
llvm-svn: 198850
|
| |
|
|
|
|
|
|
| |
Rename bytecode to opcodes to make it more clear. Change an impossible case to
llvm_unreachable instead. Avoid allocation of a buffer by modifying the
PrintOpcodes iteration.
llvm-svn: 198848
|
| |
|
|
|
|
|
| |
Explicitly handle endianness to ensure that bytes are read properly on
big-endian systems.
llvm-svn: 198847
|
| |
|
|
|
|
| |
type unit skeletons.
llvm-svn: 198846
|
| |
|
|
|
|
| |
required by Clang's APValue.
llvm-svn: 198844
|
| |
|
|
| |
llvm-svn: 198843
|
| |
|
|
|
|
|
|
|
|
| |
as well.
Since we'll now also need the split dwarf file name along with the
language in DwarfTypeUnits, just use the whole DICompileUnit rather than
explicitly handling each field needed.
llvm-svn: 198842
|
| |
|
|
|
|
|
|
| |
This reverts commit r198830.
Decided to go a different way with this...
llvm-svn: 198841
|
| |
|
|
|
|
| |
I add support for the new pass manager to it.
llvm-svn: 198838
|
| |
|
|
|
|
|
|
|
|
|
|
| |
operand into the Value interface just like the core print method is.
That gives a more conistent organization to the IR printing interfaces
-- they are all attached to the IR objects themselves. Also, update all
the users.
This removes the 'Writer.h' header which contained only a single function
declaration.
llvm-svn: 198836
|
| |
|
|
|
|
| |
It's unused in DwarfTypeUnit, as is expected.
llvm-svn: 198830
|
| |
|
|
| |
llvm-svn: 198825
|
| |
|
|
| |
llvm-svn: 198821
|
| |
|
|
| |
llvm-svn: 198819
|
| |
|
|
| |
llvm-svn: 198817
|
| |
|
|
|
|
|
|
|
|
| |
In the stackmap format we advertise the constant field as signed.
However, we were determining whether to promote to a 64-bit constant
pool based on an unsigned comparison.
This fix allows -1 to be encoded as a small constant.
llvm-svn: 198816
|
| |
|
|
| |
llvm-svn: 198813
|
| |
|
|
|
|
|
|
|
| |
equivalents
This makes it easier to write a test that's mostly shared between
fission and non-fission (using FileCheck's multiple prefix support).
llvm-svn: 198806
|
| |
|
|
|
|
| |
With c++11 we never instantiate the copy constructor.
llvm-svn: 198803
|
| |
|
|
| |
llvm-svn: 198799
|
| |
|
|
|
|
|
| |
having the include could cause weird layering problems between the IR
and MC libraries.
llvm-svn: 198796
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MIsNeedChainEdge, which is used by -enable-aa-sched-mi (AA in misched), had an
llvm_unreachable when -enable-aa-sched-mi is enabled and we reach an
instruction with multiple MMOs. Instead, return a conservative answer. This
allows testing -enable-aa-sched-mi on x86.
Also, this moves the check above the isUnsafeMemoryObject checks.
isUnsafeMemoryObject is currently correct only for instructions with one MMO
(as noted in the comment in isUnsafeMemoryObject):
// We purposefully do no check for hasOneMemOperand() here
// in hope to trigger an assert downstream in order to
// finish implementation.
The problem with this is that, had the candidate edge passed the
"!MIa->mayStore() && !MIb->mayStore()" check, the hoped-for assert would never
happen (which could, in theory, lead to incorrect behavior if one of these
secondary MMOs was volatile, for example).
llvm-svn: 198795
|
| |
|
|
| |
llvm-svn: 198794
|
| |
|
|
|
|
|
| |
This matches std::set and allows using DenseSet with the functions
in SetOperations.h
llvm-svn: 198793
|
| |
|
|
|
|
| |
ErrorOr is modeled after boost::optional which has a get method.
llvm-svn: 198792
|
| |
|
|
| |
llvm-svn: 198791
|
| |
|
|
|
|
| |
resolution works.
llvm-svn: 198780
|
| |
|
|
|
|
| |
It's not a real instruction any more and doesn't need encoding information.
llvm-svn: 198778
|