| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 222050
|
|
|
|
| |
llvm-svn: 222023
|
|
|
|
| |
llvm-svn: 222022
|
|
|
|
| |
llvm-svn: 222019
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit r221842 which was a revert of r221836 and of the
test parts of r221837.
This new version fixes an UB bug pointed out by David (along with
addressing some other review comments), makes some dumping more
resilient to broken input data and forces the accelerator tables
to be dumped in the tests where we use them (this decision is
platform specific otherwise).
llvm-svn: 222003
|
|
|
|
|
|
|
|
|
| |
This patch adds builtin support for xvdivdp and xvdivsp, along with a
test case. Straightforward stuff.
There's a companion patch for Clang.
llvm-svn: 221983
|
|
|
|
|
|
|
| |
r221975 seemed to trigger an ambiguous conversion that only irritated
clang, not gcc.
llvm-svn: 221977
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In support of serializing executables, obj2yaml now records the virtual address
and size of sections. It also serializes whatever we strictly need from
the PE header, it expects that it can reconstitute everything else via
inference.
yaml2obj can reconstitute a fully linked executable.
In order to get executables correctly serialized/deserialized, other
bugs were fixed as a circumstance. We now properly respect file and
section alignments. We also avoid writing out string tables unless they
are strictly necessary.
llvm-svn: 221975
|
|
|
|
|
|
|
|
|
|
| |
This matches std::vector and is more efficient as it avoids
truncations.
With this the text segment of opt goes from 19705442 bytes
to 19703930 bytes.
llvm-svn: 221973
|
|
|
|
|
|
|
|
| |
This teaches CoverageMapping::getCoveredFunctions to filter to a
particular file and uses that to replace most of the logic found in
llvm-cov report.
llvm-svn: 221962
|
|
|
|
|
|
|
|
|
|
| |
Stop using `Value::getName()` to get the string behind an `MDString`.
Switch to `StringMapEntry<MDString>` so that we can find the string by
its coallocation.
This is part of PR21532.
llvm-svn: 221960
|
|
|
|
|
|
|
|
| |
StringMap operations.
Followup to r221946.
llvm-svn: 221958
|
|
|
|
|
|
| |
This is one step towards supporting SEH filter functions in LLVM.
llvm-svn: 221954
|
|
|
|
|
|
|
|
| |
When "MBB->Insert(It, ...)" is called, we want It to be pointing inside the
correct basic block. No actual failures at the moment, but it's caused problems
before.
llvm-svn: 221953
|
|
|
|
|
|
|
|
|
|
| |
Hide the fact that `MDString`'s string is stored in `Value::Name` --
that's going to change soon. Update the only in-tree client that was
using it instead of `Value::getString()`.
Part of PR21532.
llvm-svn: 221951
|
|
|
|
|
|
| |
Now you can pass references into constructors.
llvm-svn: 221946
|
|
|
|
| |
llvm-svn: 221930
|
|
|
|
|
|
| |
requires TargetLoweringObjectFile to be passed.
llvm-svn: 221926
|
|
|
|
|
|
| |
This removes the need for a special Read64.
llvm-svn: 221909
|
|
|
|
|
|
|
|
| |
Creating tests for the ConstantIslands pass is very difficult, since it depends
on precise layout details. Having the ability to precisely inject a number of
bytes into the stream helps greatly.
llvm-svn: 221903
|
|
|
|
|
|
| |
Thanks to Sean Silva for the suggestion.
llvm-svn: 221892
|
|
|
|
| |
llvm-svn: 221891
|
|
|
|
|
|
|
|
|
| |
This will become the root of a new class hierarchy separate from
`Value`. As a first step, stick it between `Value` and `MDNode`.
This is part of PR21532.
llvm-svn: 221886
|
|
|
|
|
|
| |
TargetMachine so that different subtargets could share the TLOF effectively
llvm-svn: 221878
|
|
|
|
|
|
| |
No functionality changed intended.
llvm-svn: 221867
|
|
|
|
|
|
|
| |
The reading of 64 bit values could still be optimized, but at least this cuts
down on the number of virtual calls to fetch more data.
llvm-svn: 221865
|
|
|
|
| |
llvm-svn: 221863
|
|
|
|
| |
llvm-svn: 221855
|
|
|
|
|
|
| |
Clang, not LLVM
llvm-svn: 221849
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit r221836.
The tests are asserting on some buildbots. This also reverts the
test part of r221837 as it relies on dwarfdump dumping the
accelerator tables.
llvm-svn: 221842
|
|
|
|
|
|
|
|
|
|
| |
This avoids an issue where AtEndOfStream mistakenly returns true at the /start/ of
a stream.
(In the rare case that the size is known and actually 0, the slow path will still
handle it correctly.)
llvm-svn: 221840
|
|
|
|
|
|
|
| |
The class used for the dump only allows to dump for the moment, but
it can (and will) be easily extended to support search also.
llvm-svn: 221836
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently FormValues are only used for attributes of DIEs and thus
uers always have a CU lying around when calling into the FormValue
API.
Accelerator tables encode their information using the same Forms
as the attributes, thus it is natural to use DWARFFormValue to
extract/dump them. There is no CU in that case though. Allow the
API to be called with a null CU arguemnt by making the RelocMap
lookup conditional on the CU pointer validity. And document this
new behvior in the header. (Test coverage for this use of the API
comes in the DwarfAccelTable support patch)
llvm-svn: 221835
|
|
|
|
|
|
|
|
|
|
|
|
| |
One of them (__memcpy_chk) was already there, the others were checked
by comparing function names.
Note that the fortified libfuncs are now part of TLI, but are always
available, because they aren't generated, only optimized into the
non-checking versions.
Differential Revision: http://reviews.llvm.org/D6179
llvm-svn: 221817
|
|
|
|
| |
llvm-svn: 221811
|
|
|
|
|
|
|
| |
This allows the removal of isObjectEnd and opens the way for reading 64 bits
at a time.
llvm-svn: 221804
|
|
|
|
|
|
|
| |
Returning more information will allow BitstreamReader to be simplified a bit
and changed to read 64 bits at a time.
llvm-svn: 221794
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Large-model was added first. With the addition of support for multiple PIC
models in LLVM, now add small-model PIC for 32-bit PowerPC, SysV4 ABI. This
generates more optimal code, for shared libraries with less than about 16380
data objects.
Test Plan: Test cases added or updated
Reviewers: joerg, hfinkel
Reviewed By: hfinkel
Subscribers: jholewinski, mcrosier, emaste, llvm-commits
Differential Revision: http://reviews.llvm.org/D5399
llvm-svn: 221791
|
|
|
|
| |
llvm-svn: 221785
|
|
|
|
|
|
| |
removed in r221751. [-Wdocumentation]
llvm-svn: 221775
|
|
|
|
|
|
|
|
|
| |
3 instructions: vrcp28, vrsqrt28, vexp2, only vector forms.
Intrinsics include SAE (Suppres All Exceptions) parameter.
http://reviews.llvm.org/D6214
llvm-svn: 221774
|
|
|
|
| |
llvm-svn: 221770
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch enables the vec_vsx_ld and vec_vsx_st intrinsics for
PowerPC, which provide programmer access to the lxvd2x, lxvw4x,
stxvd2x, and stxvw4x instructions.
New LLVM intrinsics are provided to represent these four instructions
in IntrinsicsPowerPC.td. These are patterned after the similar
intrinsics for lvx and stvx (Altivec). In PPCInstrVSX.td, these
intrinsics are tied to the code gen patterns, with additional patterns
to allow plain vanilla loads and stores to still generate these
instructions.
At -O1 and higher the intrinsics are immediately converted to loads
and stores in InstCombineCalls.cpp. This will open up more
optimization opportunities while still allowing the correct
instructions to be generated. (Similar code exists for aligned
Altivec loads and stores.)
The new intrinsics are added to the code that checks for consecutive
loads and stores in PPCISelLowering.cpp, as well as to
PPCTargetLowering::getTgtMemIntrinsic().
There's a new test to verify the correct instructions are generated.
The loads and stores tend to be reordered, so the test just counts
their number. It runs at -O2, as it's not very effective to test this
at -O0, when many unnecessary loads and stores are generated.
I ended up having to modify vsx-fma-m.ll. It turns out this test case
is slightly unreliable, but I don't know a good way to prevent
problems with it. The xvmaddmdp instructions read and write the same
register, which is one of the multiplicands. Commutativity allows
either to be chosen. If the FMAs are reordered differently than
expected by the test, the register assignment can be different as a
result. Hopefully this doesn't change often.
There is a companion patch for Clang.
llvm-svn: 221767
|
|
|
|
|
|
|
|
|
| |
Every MemoryObject is a StreamableMemoryObject since the removal of
StringRefMemoryObject, so just merge the two.
I will clean up the MemoryObject interface in the upcoming commits.
llvm-svn: 221766
|
|
|
|
| |
llvm-svn: 221763
|
|
|
|
| |
llvm-svn: 221762
|
|
|
|
|
|
|
|
| |
This reverts commit r221756.
David Blaikie pointed out it was unsafe.
llvm-svn: 221761
|
|
|
|
| |
llvm-svn: 221759
|
|
|
|
| |
llvm-svn: 221758
|
|
|
|
| |
llvm-svn: 221757
|