| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 238163
|
| |
|
|
|
|
| |
Another step in merging MCSectionData and MCSection.
llvm-svn: 238162
|
| |
|
|
|
|
|
|
|
| |
They now contain the fragments. If we don't call the destructors the
fragments leak.
Found by an asan bot.
llvm-svn: 238161
|
| |
|
|
|
|
| |
Part of the work to merge MCSectionData into MCSection.
llvm-svn: 238160
|
| |
|
|
|
|
|
| |
This also changes MCAssembler to store a vector of MCSections instead of an
iplist of MCSectionData.
llvm-svn: 238159
|
| |
|
|
|
|
| |
Another step in merging MCSectionData and MCSection.
llvm-svn: 238158
|
| |
|
|
|
|
| |
This just reduces the noise from another patch.
llvm-svn: 238156
|
| |
|
|
|
|
|
| |
Removing the logic from the constructor will make it easier to merge
MCSectionData and MCSection.
llvm-svn: 238155
|
| |
|
|
| |
llvm-svn: 238154
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
In case of functions that have a pointer argument and only pass it to
each other, the function attributes pass deduces that the pointer should
get the readnone attribute, but fails to remove a readonly attribute
that may already have been present.
Reviewers: nlewycky
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D9995
llvm-svn: 238152
|
| |
|
|
| |
llvm-svn: 238150
|
| |
|
|
|
|
|
|
| |
Part of D9474, this patch extends AVX2 v16i16 types to 2 x 8i32 vectors and uses i32 shift variable shifts before packing back to i16.
Adds AVX2 tests for v8i16 and v16i16
llvm-svn: 238149
|
| |
|
|
|
|
|
| |
DisableEncoding and Constraints can be set using let statements around
the multiclass defs.
llvm-svn: 238148
|
| |
|
|
|
|
| |
The src and dst register cannot be the same on chips with 16 lds banks.
llvm-svn: 238147
|
| |
|
|
|
|
|
|
| |
This lets us drop a parameter the opName parameter to the VINTRP
multiclass and makes it possible to create multiple VINTRP defs
with the same asm mnemonic.
llvm-svn: 238146
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in POWER8:
vadduqm
vaddeuqm
vaddcuq
vaddecuq
vsubuqm
vsubeuqm
vsubcuq
vsubecuq
In addition to adding the instructions themselves, it also adds support for the
v1i128 type for intrinsics (Intrinsics.td, Function.cpp, and
IntrinsicEmitter.cpp).
http://reviews.llvm.org/D9081
llvm-svn: 238144
|
| |
|
|
| |
llvm-svn: 238143
|
| |
|
|
| |
llvm-svn: 238142
|
| |
|
|
| |
llvm-svn: 238141
|
| |
|
|
| |
llvm-svn: 238139
|
| |
|
|
|
|
| |
Part of the work to merge MCSectionData and MCSection.
llvm-svn: 238137
|
| |
|
|
|
|
| |
Patch by Richard <legalize@xmission.com>
llvm-svn: 238134
|
| |
|
|
|
|
|
|
|
|
|
| |
llvm/lib/DebugInfo/DWARF
Use clang-tidy to simplify boolean conditional return statements. Patch by
Richard Thomson <legalize@xmission.com>!
Differential Revision: http://reviews.llvm.org/D9972
llvm-svn: 238132
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
first and second operands.
The semantics of the scalar FMA intrinsics are that the high vector elements are copied from the first source.
The existing pattern switches src1 and src2 around, to match the "213" order, which ends up tying the original src2 to the dest. Since the actual scalar fma3 instructions copy the high elements from the dest register, the wrong values are copied.
This modifies the pattern to leave src1 and src2 in their original order.
Differential Revision: http://reviews.llvm.org/D9908
llvm-svn: 238131
|
| |
|
|
|
|
|
| |
I encountered with this case in one of KNL tests for i1 vectors.
v16i1 = EXTRACT_SUBVECTOR v32i1, x
llvm-svn: 238130
|
| |
|
|
| |
llvm-svn: 238126
|
| |
|
|
| |
llvm-svn: 238125
|
| |
|
|
|
|
|
|
|
|
| |
lazily built.
Also, make it a much more generic SCEV cache, which today exposes only
a reduced GEP model description but could be extended in the future to
do other profitable caching of SCEV information.
llvm-svn: 238124
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Stop creating symbols we don't need in `DwarfStringPool`. The consumers
only call `DwarfStringPoolEntryRef::getSymbol()` when DWARF is
relocatable, so this just stops creating the unused symbols when it's
not. This drops memory usage from 851 MB to 845 MB, around 0.7%.
(I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`;
see r236629 for details.)
llvm-svn: 238122
|
| |
|
|
| |
llvm-svn: 238121
|
| |
|
|
| |
llvm-svn: 238120
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mint a new function, `AsmPrinter::emitDwarfStringOffset()`, which takes
a `DwarfStringPoolEntryRef`. When DWARF is relocatable across sections,
this defers to `emitSectionOffset()` and emits the `MCSymbol`;
otherwise, just emit the offset directly, without using any intermediate
symbols.
`EmitLabelDifference()` is already optimized to emit absolute label
differences cheaply when possible, so there aren't any major memory
savings here (853 MB down to 851 MB, or 0.2%). However, it prepares for
making the `MCSymbol`s in the `DwarfStringPool` optional.
(I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`;
see r236629 for details.)
llvm-svn: 238119
|
| |
|
|
|
|
|
| |
This is just an API change, but it prepares to stop using
`EmitLabelDifference()` when possible.
llvm-svn: 238118
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Expose the `DwarfStringPool` entry in a header, and store a pointer to
it directly in `DIEString`. Instead of choosing at creation time how to
emit it, use the `dwarf::Form` to determine that at emission time.
Besides avoiding the other `DIEValue`, this shaves two pointers off of
`DIEString`; the data is now a single pointer. This is a nice cleanup
on its own -- and drops memory usage from 861 MB down to 853 MB, around
0.9% -- but it's also preparation for passing `DIEValue`s by value.
(I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`;
see r236629 for details.)
llvm-svn: 238117
|
| |
|
|
|
|
|
|
|
| |
Extract out `DwarfStringPoolEntry` and `DwarfStringPoolRef` from
`DwarfStringPool` so that downstream users can start using
`DwarfStringPool::getEntry()` directly. This will allow users to delay
the decision between emitting a symbol or an offset until later.
llvm-svn: 238116
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Change `DwarfStringPool` to calculate byte offsets on-the-fly, and
update `DwarfUnit::getLocalString()` to use a `DIEInteger` instead of a
`DIEDelta` when Dwarf doesn't use relocations (i.e., Mach-O). This
eliminates another call to `EmitLabelDifference()`, and drops memory
usage from 865 MB down to 861 MB, around 0.5%.
(I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`;
see r236629 for details.)
llvm-svn: 238114
|
| |
|
|
|
|
|
|
| |
Move `DwarfStringPool`'s `getEntry()` to the header (and make it a
member function) in preparation for calculating symbol offsets
on-the-fly.
llvm-svn: 238112
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Using getCanonicalArchName() is the right way to parse ARM arch names.
Mapping ARMTargetParser IDs to Triple Arch IDs is temporary, until they
are merged into a TargetDescription class.
This was the last LLVM FIXME to move things to ARMTargetParser. Now on
to Clang and beyond.
llvm-svn: 238110
|
| |
|
|
|
|
|
|
|
|
| |
On GPU targets, materializing constants is cheap and stores are
expensive, so only doing this for zero vectors was silly.
Most of the new testcases aren't optimally merged, and are for
later improvements.
llvm-svn: 238108
|
| |
|
|
|
|
|
|
| |
allocation.
NFC.
llvm-svn: 238104
|
| |
|
|
|
|
| |
NFC.
llvm-svn: 238103
|
| |
|
|
| |
llvm-svn: 238102
|
| |
|
|
|
|
| |
It doesn't belong in the shared MC layer. NFC.
llvm-svn: 238101
|
| |
|
|
| |
llvm-svn: 238099
|
| |
|
|
|
|
|
|
|
|
|
| |
When the compare feeding a branch was in a different BB from the branch, we'd
try to "regenerate" the compare in the block with the branch, possibly trying
to make use of values not available there. Copy a page from AArch64's play book
here to fix the problem (at least in terms of correctness).
Fixes PR23640.
llvm-svn: 238097
|
| |
|
|
| |
llvm-svn: 238096
|
| |
|
|
|
|
| |
converting to range-based loops.
llvm-svn: 238095
|
| |
|
|
| |
llvm-svn: 238094
|
| |
|
|
| |
llvm-svn: 238093
|
| |
|
|
| |
llvm-svn: 238086
|