| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add MSBuiltin which is similar in vein to GCCBuiltin. This allows for adding
intrinsics for Microsoft compatibility to individual instructions. This is
needed to permit the creation of ARM specific MSVC extensions.
This is not currently in use, and requires an associated change in clang to
enable use of the intrinsics defined by this new class. This merely sets the
LLVM portion of the infrastructure in place to permit the use of this
functionality. A separate set of changes will enable the new intrinsics.
llvm-svn: 212350
|
| |
|
|
| |
llvm-svn: 211141
|
| |
|
|
|
|
|
|
|
| |
entirely clear whether this should be valid with modules enabled, but the fixed
code is cleaner regardless.
Also fix a TU-local type that accidentally had external linkage.
llvm-svn: 206714
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
lib/Analysis/IPA/InlineCost.cpp | 18 ------------------
lib/Analysis/RegionPass.cpp | 1 -
lib/Analysis/TypeBasedAliasAnalysis.cpp | 1 -
lib/Transforms/Scalar/LoopUnswitch.cpp | 21 ---------------------
lib/Transforms/Utils/LCSSA.cpp | 2 --
lib/Transforms/Utils/LoopSimplify.cpp | 6 ------
utils/TableGen/AsmWriterEmitter.cpp | 13 -------------
utils/TableGen/DFAPacketizerEmitter.cpp | 7 -------
utils/TableGen/IntrinsicEmitter.cpp | 2 --
9 files changed, 71 deletions(-)
llvm-svn: 206506
|
| |
|
|
|
|
|
|
|
|
| |
This is like the LLVMMatchType, except the verifier checks that the
second argument is a vector with the same base type and half the
number of elements.
This will be used by the ARM64 backend.
llvm-svn: 205079
|
| |
|
|
|
|
|
|
|
|
|
|
| |
These are used in the ARM backends to aid type-checking on patterns involving
intrinsics. By making sure one argument is an extended/truncated version of
another.
However, there's no reason to limit them to just vectors types. For example
AArch64 has the instruction "uqshrn sD, dN, #imm" which would naturally use an
intrinsic taking an i64 and returning an i32.
llvm-svn: 205003
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The "noduplicate" function attribute exists to prevent certain optimizations
from duplicating calls to the function. This is important on platforms where
certain function call duplications are unsafe (for example execution barriers
for CUDA and OpenCL).
This patch makes it possible to specify intrinsics as "noduplicate" and
translates that to the appropriate function attribute.
llvm-svn: 204200
|
| |
|
|
|
|
|
|
| |
of boilerplate.
No intended functionality change.
llvm-svn: 202588
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hence, they
should not be marked nounwind.
Marking them nounwind caused crashes in the WebKit FTL JIT, because if we enable
sufficient optimizations, LLVM starts eliding compact_unwind sections (or any unwind
data for that matter), making deoptimization via stackmaps impossible.
This changes the stackmap intrinsic to be may-throw, adds a test for exactly the
sympton that WebKit saw, and fixes TableGen to handle un-attributed intrinsics.
Thanks to atrick and philipreames for reviewing this.
llvm-svn: 201826
|
| |
|
|
|
|
| |
facilitate. Remove TGValueTypes.cpp since its unused now (and may have been before).
llvm-svn: 200036
|
| |
|
|
|
|
|
|
| |
the “pushing” and “clearing” of the SmallVector and instead uses const arrays to pass the attributeKinds to AttributeSet::get .
Patch by Aditya Nandakumar.
llvm-svn: 194899
|
| |
|
|
| |
llvm-svn: 193766
|
| |
|
|
| |
llvm-svn: 193765
|
| |
|
|
|
|
|
|
|
|
| |
Patch by Ana Pazos.
1.Added support for v1ix and v1fx types.
2.Added Scalar Pairwise Reduce instructions.
3.Added initial implementation of Scalar Arithmetic instructions.
llvm-svn: 191263
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mis-identify names if one was a prefix substring of the other
For two intrinsics 'llvm.nvvm.texsurf.handle' and 'llvm.nvvm.texsurf.handle.internal',
TableGen was emitting matching code like:
if (Name.startswith("llvm.nvvm.texsurf.handle")) ...
if (Name.startswith("llvm.nvvm.texsurf.handle.internal")) ...
We can never match "llvm.nvvm.texsurf.handle.internal" here because it will
always be erroneously matched by the first condition.
The fix is to sort the intrinsic names and emit them in reverse order.
llvm-svn: 187119
|
| |
|
|
|
|
|
| |
functions. Make the function attributes pass add it to known library functions
and when it can deduce it.
llvm-svn: 185735
|
| |
|
|
|
|
|
| |
In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.
llvm-svn: 173606
|
| |
|
|
| |
llvm-svn: 172159
|
| |
|
|
|
|
| |
attribute instead of the value of the attribute.
llvm-svn: 170972
|
| |
|
|
|
|
| |
single attribute in the future.
llvm-svn: 170502
|
| |
|
|
|
|
| |
in the near future.
llvm-svn: 169651
|
| |
|
|
|
|
|
|
|
| |
When code deletes the context, the AttributeImpls that the AttrListPtr points to
are now invalid. Therefore, instead of keeping a separate managed static for the
AttrListPtrs that's reference counted, move it into the LLVMContext and delete
it when deleting the AttributeImpls.
llvm-svn: 168354
|
| |
|
|
|
|
|
|
|
|
|
| |
Most places can use PrintFatalError as the unwinding mechanism was not
used for anything other than printing the error. The single exception
was CodeGenDAGPatterns.cpp, where intermediate errors during type
resolution were ignored to simplify incremental platform development.
This use is replaced by an error flag in TreePattern and bailout earlier
in various places if it is set.
llvm-svn: 166712
|
| |
|
|
|
|
| |
This gets rid of some magic numbers.
llvm-svn: 165924
|
| |
|
|
|
|
|
|
|
|
| |
Convert the internal representation of the Attributes class into a pointer to an
opaque object that's uniqued by and stored in the LLVMContext object. The
Attributes class then becomes a thin wrapper around this opaque
object. Eventually, the internal representation will be expanded to include
attributes that represent code generation options, etc.
llvm-svn: 165917
|
| |
|
|
|
|
| |
enums. These are then created via the correct Attributes creation method.
llvm-svn: 165607
|
| |
|
|
|
|
|
|
|
| |
The TableGenBackend base class doesn't do much, and will be removed
completely soon.
Patch by Sean Silva!
llvm-svn: 158311
|
| |
|
|
| |
llvm-svn: 157556
|
| |
|
|
| |
llvm-svn: 157551
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Intrinsic::getDefinition,
making it stronger and more sane.
Delete the code from tblgen that produced the old code.
Besides being a path forward in intrinsic sanity, this also eliminates a bunch of
machine generated code that was compiled into Function.o
llvm-svn: 157545
|
| |
|
|
|
|
| |
info table.
llvm-svn: 157540
|
| |
|
|
|
|
|
| |
it is (at the cost of 45 bytes of extra table space) so that the verifier can
start using it.
llvm-svn: 157536
|
| |
|
|
| |
llvm-svn: 157523
|
| |
|
|
| |
llvm-svn: 157320
|
| |
|
|
|
|
| |
case.
llvm-svn: 157312
|
| |
|
|
| |
llvm-svn: 157218
|
| |
|
|
|
|
|
|
|
| |
into a
separate side table, using the handy SequenceToOffsetTable class. This encodes all
these weird things into another 256 bytes, allowing all intrinsics to be encoded this way.
llvm-svn: 156995
|
| |
|
|
|
|
|
| |
are only rejected because they can't be encoded into a 32-bit unit, not because
they contain an unencodable feature.
llvm-svn: 156978
|
| |
|
|
|
|
|
|
| |
other
intrinsics that use passed-in arguments.
llvm-svn: 156977
|
| |
|
|
|
|
| |
compatibility with LLVM 2.x bitcode files.
llvm-svn: 156976
|
| |
|
|
| |
llvm-svn: 156975
|
| |
|
|
| |
llvm-svn: 156973
|
| |
|
|
|
|
|
|
|
|
| |
blob of tblgen
generated code (for Intrinsic::getType) into a table. This handles common cases right now,
but I plan to extend it to handle all cases and merge in type verification logic as well
in follow-on patches.
llvm-svn: 156905
|
| |
|
|
| |
llvm-svn: 156902
|
| |
|
|
|
|
| |
be used by clang-tblgen.
llvm-svn: 156000
|
| |
|
|
|
|
| |
doing attribute table lookup. Also fix attribute table lookup to handle 'invalid' intrinsic correctly. Fixes PR12542
llvm-svn: 154658
|
| |
|
|
|
|
| |
was the c backend.
llvm-svn: 153432
|
| |
|
|
| |
llvm-svn: 151792
|
| |
|
|
|
|
| |
Shrinks BasicAliasAnalysis.o from 106k to 56k on i386.
llvm-svn: 151781
|
| |
|
|
|
|
| |
suggested in PR11951.
llvm-svn: 151622
|