| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Avoid implicit conversions from iterator to pointer by preferring
MachineInstr& and using range-based for loops.
llvm-svn: 274354
|
| |
|
|
|
|
|
|
|
| |
Use MachineInstr& instead of MachineInstr* in RegAllocFast to avoid
implicit conversions from MachineInstrBundleIterator. RAFast::spillAll
and RAFast::spillVirtReg still take iterators, since their argument may
be an end iterator from MachineBasicBlock::getFirstTerminator.
llvm-svn: 274353
|
| |
|
|
|
|
| |
construct
llvm-svn: 274352
|
| |
|
|
|
|
|
|
|
|
|
| |
Previously out-of-tree passes could detect if LLVM was built with
LLVM_BUILD_32_BITS by looking for -m32 in LLVM_DEFINITIONS, but as of r271871
it no longer appears there. Resolve this by instead emitting LLVM_BUILD_32_BITS
in LLVMConfig so it can be checked for directly.
Differential Revision: http://reviews.llvm.org/D21434
llvm-svn: 274351
|
| |
|
|
|
|
|
| |
Without this change it is not possible for isl to parse the resulting objects
from their string representation.
llvm-svn: 274350
|
| |
|
|
| |
llvm-svn: 274349
|
| |
|
|
|
|
|
|
|
|
|
| |
This feature needs to be explicitly enabled by overriding shouldTraversePostOrder()
as it has performance drawbacks for the iterative Stmt-traversal.
Patch by Raphael Isemann!
Reviewed by Richard Smith and Benjamin Kramer.
llvm-svn: 274348
|
| |
|
|
|
|
|
|
|
| |
No functional changes. Just created wrapper classes around the 3
and 4 reg mult and mac instruction classes.
Differential Revision: http://reviews.llvm.org/D21549
llvm-svn: 274347
|
| |
|
|
|
|
| |
flaky because it's detecting a false positive race (coming from a system library) and sometimes that race is detected after we're printing "Done".
llvm-svn: 274346
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is PR28358
According to
https://www.akkadia.org/drepper/dsohowto.pdf
"The fourth point, the VERS 1.0 version being referred to in the VERS 2.0 definition, is not really important in symbol versioning. It marks the predecessor relationship of the two versions and it is done to maintain the similar- ities with Solaris’ internal versioning. It does not cause any problem it might in fact be useful to a human reader so predecessors should always be mentioned."
Patch partially reverts 273423 "[ELF] - Implemented version script hierarchies.",
version references are just ignored now.
Differential revision: http://reviews.llvm.org/D21888
llvm-svn: 274345
|
| |
|
|
|
|
| |
While there use emplace_back to create an expensive pair.
llvm-svn: 274344
|
| |
|
|
| |
llvm-svn: 274343
|
| |
|
|
| |
llvm-svn: 274342
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was reverted in r268740 because of problems with corresponding Clang change.
Clang change was updated and resubmitted in r274220.
Check calling convention in AMDGPUMachineFunction::isKernel
This will be used for AMDGPU_HSA_KERNEL symbol type in output ELF.
Also, in the future unused non-kernels may be optimized.
Reviewers: tstellarAMD, arsenm
Subscribers: arsenm, joker.eph, llvm-commits
Differential Revision: http://reviews.llvm.org/D19917
llvm-svn: 274341
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: dst_sel and dst_unused disabled for VOPC as they have no effect on result
Reviewers: artem.tamazov, tstellarAMD, vpykhtin
Subscribers: arsenm, kzhuravl
Differential Revision: http://reviews.llvm.org/D21376
llvm-svn: 274340
|
| |
|
|
| |
llvm-svn: 274339
|
| |
|
|
|
|
| |
ArrayRef argument and its begin/end iterators. Also use 'int' type for number of elements and loop iterators to remove several typecasts. No functional change intended.
llvm-svn: 274338
|
| |
|
|
|
|
|
|
| |
pointer to a mask array. Convert all callers to use the ArrayRef version. No functional change intended.
For the most part this simplifies all callers. There were two places in X86 that needed an explicit makeArrayRef to shorten a statically sized array.
llvm-svn: 274337
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Group" sections while lowering. In particular, for ELF sections this is
useful for creating function-specific groups that get merged into the
same named section.
Also use const Twine& instead of StringRef for the getELF functions
while we're here.
Differential Revision: http://reviews.llvm.org/D21743
llvm-svn: 274336
|
| |
|
|
| |
llvm-svn: 274335
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D21636
llvm-svn: 274334
|
| |
|
|
|
|
|
| |
Make worklist and ehworklist member of the
class so that they don't need to be passed around.
llvm-svn: 274333
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit r274327 since the tests fail. E.g.:
http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules/builds/17240
It looks like this commit is building on r274305, but that commit caused
a miscompile and was reverted in r274320.
llvm-svn: 274332
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch is the last in a series that replaces recursive meta-programming
in std::tuple with non-recursive implementations.
Previously std::tuple could only be instantiated with 126 elements before
it blew the max template instantiation depth. Now the size of std::tuple is
essentially unbounded (I've tested with over 5000 elements).
One unfortunate side-effect of this change is that tuple_constructible
and similar no longer short circuit after the first failure. Instead they
evaluate the conditions for all elements. This could be potentially breaking.
I plan to look into this further.
llvm-svn: 274331
|
| |
|
|
|
|
|
|
|
|
| |
This patch attempts to improve the QoI of std::tuples tuple_element and
__make_tuple_types helpers. Previously they required O(N) instantiations,
one for every element in the tuple
The new implementations are O(1) after __tuple_indices<Id...> is created.
llvm-svn: 274330
|
| |
|
|
| |
llvm-svn: 274329
|
| |
|
|
|
|
|
|
| |
This reverts commit r274313.
While this fixed the build on Darwin, it broke Linux with local submodule
visibility.
llvm-svn: 274328
|
| |
|
|
|
|
|
| |
https://llvm.org/bugs/show_bug.cgi?id=20242
https://llvm.org/bugs/show_bug.cgi?id=22005
llvm-svn: 274327
|
| |
|
|
| |
llvm-svn: 274326
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This represents the adjustment applied to the implicit 'this' parameter
in the prologue of a virtual method in the MS C++ ABI. The adjustment is
always zero unless multiple inheritance is involved.
This increases the size of DISubprogram by 8 bytes, unfortunately. The
adjustment really is a signed 32-bit integer. If this size increase is
too much, we could probably win it back by splitting out a subclass with
info specific to virtual methods (virtuality, vindex, thisadjustment,
containingType).
Reviewers: aprantl, dexonsmith
Subscribers: aaboud, amccarth, llvm-commits
Differential Revision: http://reviews.llvm.org/D21614
llvm-svn: 274325
|
| |
|
|
|
|
|
|
|
| |
If OpB has an ADD NSW/NUW, we can use that to prove that adding 1
to OpA won't wrap if OpA + 1 == OpB.
Patch by Fiona Glaser
llvm-svn: 274324
|
| |
|
|
|
|
|
| |
If no alignment was set on the load/stores, it would vectorize
to the new type even though this increases the default alignment.
llvm-svn: 274323
|
| |
|
|
| |
llvm-svn: 274322
|
| |
|
|
|
|
|
| |
This needs to use inttoptr/ptrtoint if combining an int and pointer
load. If a pointer is used always do an integer load.
llvm-svn: 274321
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit r274305, since it breaks self-hosting:
http://lab.llvm.org:8080/green/job/clang-stage1-configure-RA_build/22349/
http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules/builds/17232
Note that the blamelist on lab.llvm.org:8011 is incorrect. The previous
build was r274299, but somehow r274305 wasn't included in the blamelist:
http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules
llvm-svn: 274320
|
| |
|
|
|
|
|
|
|
| |
Change all the methods in LiveVariables that expect non-null
MachineInstr* to take MachineInstr& and update the call sites. This
clarifies the API, and designs away a class of iterator to pointer
implicit conversions.
llvm-svn: 274319
|
| |
|
|
|
|
|
| |
This was not passing the full instruction with metadata
to the alias query.
llvm-svn: 274318
|
| |
|
|
| |
llvm-svn: 274317
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Dionne.
This patch adds a __nth_element builtin that allows fetching the n-th type of a
parameter pack with very little compile-time overhead. The patch was inspired by
r252036 and r252115 by David Majnemer, which add a similar __make_integer_seq
builtin for efficiently creating a std::integer_sequence.
Reviewed as D15421. http://reviews.llvm.org/D15421
llvm-svn: 274316
|
| |
|
|
|
|
| |
Remove another unnecessary iterator to pointer conversion.
llvm-svn: 274315
|
| |
|
|
|
|
|
|
| |
single underscore.
rdar://24677150
llvm-svn: 274314
|
| |
|
|
|
|
| |
This fixes the -fmodules build.
llvm-svn: 274313
|
| |
|
|
| |
llvm-svn: 274312
|
| |
|
|
|
|
|
|
| |
Convert a loop to a range-based for, using MachineInstr& instead of
MachineInstr* and removing an implicit conversion from iterator to
pointer.
llvm-svn: 274311
|
| |
|
|
|
|
|
|
|
| |
Use MachineInstr& over MachineInstr* to avoid implicit iterator to
pointer conversions. MachineInstr*-as-nullptr was being used as a flag
for whether the for loop terminated normally; I added an explicit `bool`
instead.
llvm-svn: 274310
|
| |
|
|
| |
llvm-svn: 274309
|
| |
|
|
| |
llvm-svn: 274308
|
| |
|
|
|
|
|
|
|
|
|
|
| |
integer.
Fixes issues on some architectures where we use arithmetic ops to build
vectors, which can cause bad things to happen for loads/stores of mixed
types.
Patch by Fiona Glaser
llvm-svn: 274307
|
| |
|
|
| |
llvm-svn: 274306
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This pass hoists duplicated computations in the program. The primary goal of
gvn-hoist is to reduce the size of functions before inline heuristics to reduce
the total cost of function inlining.
Pass written by Sebastian Pop, Aditya Kumar, Xiaoyu Hu, and Brian Rzycki.
Important algorithmic contributions by Daniel Berlin under the form of reviews.
Differential Revision: http://reviews.llvm.org/D19338
llvm-svn: 274305
|