- Jul 22, 2016
-
-
Wei Mi authored
Differential Revision: https://reviews.llvm.org/D22688 llvm-svn: 276449
-
Anna Thomas authored
Summary: The llvm.invariant.start and llvm.invariant.end intrinsics currently support specifying invariant memory objects only in the default address space. With this change, these intrinsics are overloaded for any adddress space for memory objects and we can use these llvm invariant intrinsics in non-default address spaces. Example: llvm.invariant.start.p1i8(i64 4, i8 addrspace(1)* %ptr) This overloaded intrinsic is needed for representing final or invariant memory in managed languages. Reviewers: apilipenko, reames Subscribers: llvm-commits llvm-svn: 276447
-
Krzysztof Parzyszek authored
Hexagon backend uses LoopDataPrefetch pass that is defined in Scalar. llvm-svn: 276441
-
Matt Arsenault authored
The size can exceed s_movk_i32's limit, and we don't want to use it this early since it inhibits optimizations. This should probably be merged to the release branch. llvm-svn: 276438
-
Matt Arsenault authored
llvm-svn: 276437
-
Matt Arsenault authored
Remove dead code from r600 intrinsic removal. Remove unset members, rename StackSize to be less ambiguous. llvm-svn: 276436
-
Matt Arsenault authored
R600's i1 fp_to_uint selected but was incorrect according to what instcombine constant folds to. llvm-svn: 276435
-
Matt Arsenault authored
llvm-svn: 276434
-
Tim Northover authored
llvm-svn: 276433
-
Simon Pilgrim authored
An extension of D19978, this patch replaces the default BITREVERSE evaluation of individual bit masks+shifts with block mask+shifts when we have integer elements of power-of-2 bits in size. After calling BSWAP to reverse the order of the constituent bytes (which typically follows a similar approach), every neighbouring 4-bits, 2-bits and finally 1-bit pairs are masked off and swapped over with shifts. In doing so we can significantly reduce the number of operations required. Differential Revision: https://reviews.llvm.org/D21578 llvm-svn: 276432
-
Lang Hames authored
This allows ErrorAsOutParameter to work better with "optional" errors. For example, consider a function where for certain input values it is known that the function can't fail. This can now be written as: Result foo(Arg X, Error *Err) { ErrorAsOutParameter EAO(Err); if (<Error Condition>) { if (Err) *Err = <report error>; else llvm_unreachable("Unexpected failure!"); } } Rather than having to construct an ErrorAsOutParameter under every conditional where Err is known to be non-null. llvm-svn: 276430
-
Krzysztof Parzyszek authored
- FuncNode::findBlock traverses the function every time. Avoid using it, and keep a cache of block addresses in DataFlowGraph instead. - The operator[] in the map of definition stacks was very slow. Replace the map with unordered_map. llvm-svn: 276429
-
Zachary Turner authored
This facilitates code reuse between the builder classes and the "frozen" read only versions of the classes used for parsing existing PDB files. llvm-svn: 276427
-
Zachary Turner authored
This implements support for writing compiland and compiland source file info to a binary PDB. This is tested by adding support for dumping these fields from an existing PDB to yaml, reading them back in, and dumping them again and verifying the values are as expected. llvm-svn: 276426
-
Krzysztof Parzyszek authored
llvm-svn: 276422
-
Reid Kleckner authored
llvm-svn: 276419
-
Simon Pilgrim authored
As reported on PR26235, we don't currently make use of the VBROADCASTF128/VBROADCASTI128 instructions (or the AVX512 equivalents) to load+splat a 128-bit vector to both lanes of a 256-bit vector. This patch enables lowering from subvector insertion/concatenation patterns and auto-upgrades the llvm.x86.avx.vbroadcastf128.pd.256 / llvm.x86.avx.vbroadcastf128.ps.256 intrinsics to match. We could possibly investigate using VBROADCASTF128/VBROADCASTI128 to load repeated constants as well (similar to how we already do for scalar broadcasts). Reapplied with fix for PR28657 - removed intrinsic definitions (clang companion patch to be be submitted shortly). Differential Revision: https://reviews.llvm.org/D22460 llvm-svn: 276416
-
Ahmed Bougacha authored
llvm-svn: 276410
-
Benjamin Kramer authored
It caused PR28657. This reverts commit r276281. llvm-svn: 276405
-
Ying Yi authored
Summary: When giving the following command: % llvm-cov report -instr-profile=default.profraw llvm-cov will give the following error message: >llvm-cov report: Not enough positional command line arguments specified! >Must specify at least 1 positional arguments: See: orbis-llvm-cov report -help This patch changes the error message from '1 positional arguments' to '1 positional argument'. Differential Revision: https://reviews.llvm.org/D22621 llvm-svn: 276404
-
Sjoerd Meijer authored
functions so that the size computation is available not only in ConstantIslands but in other passes as well. Differential Revision: https://reviews.llvm.org/D22640 llvm-svn: 276399
-
Hrvoje Varga authored
Differential Revision: https://reviews.llvm.org/D19906 llvm-svn: 276397
-
Craig Topper authored
llvm-svn: 276394
-
Craig Topper authored
llvm-svn: 276393
-
Craig Topper authored
llvm-svn: 276392
-
Craig Topper authored
llvm-svn: 276391
-
Craig Topper authored
llvm-svn: 276390
-
David Majnemer authored
Just because we can constant fold the result of an instruction does not imply that we can delete the instruction. It may have side effects. This fixes PR28655. llvm-svn: 276389
-
Xinliang David Li authored
llvm-svn: 276388
-
Pete Cooper authored
This change adds a hasFileAtIndex method. getChildDeclContext can first call this method, and if it returns true it knows it can then lookup the resolved path cache for the given file index. If we hit that cache then we don't even have to call getFileNameByIndex. Running dsymutil against the swift executable built from github gives a 20% performance improvement without any change in the binary. Differential Revision: https://reviews.llvm.org/D22655 Reviewed by friss. llvm-svn: 276380
-
Vitaly Buka authored
Summary: Clang inserts GetElementPtrInst so findAllocaForValue was not able to find allocas. PR27453 Reviewers: kcc, eugenis Differential Revision: https://reviews.llvm.org/D22657 llvm-svn: 276374
-
Sanjoy Das authored
If `-irce-skip-profitability-checks` is passed in, IRCE will kick in in all cases where it is legal for it to kick in. This flag is intended to help diagnose and analyse performance issues. llvm-svn: 276372
-
Sebastian Pop authored
llvm-svn: 276368
-
David Majnemer authored
Use the machinery in MathExtras instead of rolling it by hand. This fixes PR28624. llvm-svn: 276366
-
Sebastian Pop authored
llvm-svn: 276364
-
Douglas Katzman authored
llvm-svn: 276362
-
Sanjay Patel authored
Almost all of these folds require changes to allow vector types. Splitting up the logic should make that easier to do incrementally. llvm-svn: 276360
-
Sebastian Pop authored
Do not clone stored values unless they are GEPs that are special cased to avoid hoisting them without hoisting their associated ld/st. Differential revision: https://reviews.llvm.org/D22652 llvm-svn: 276358
-
Xinliang David Li authored
This eliminates unncessary calls and init functions. Differential Revision: http://reviews.llvm.org/D22613 llvm-svn: 276354
-
Wei Mi authored
Differential Revision: https://reviews.llvm.org/D22648 llvm-svn: 276349
-