| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
The actual storage was already using unsigned, but the interface was using
uint64_t. This is wasteful on 32 bits and looks to be the root causes of
a miscompilation on Windows where a value was being sign extended to 64bits
to compare with the result of getSlotIndex.
Patch by Pasi Parviainen!
llvm-svn: 180791
|
|
|
|
|
|
| |
pass on Windows. I.e., we don't emit the target dependent attributes in a comment before the function.
llvm-svn: 180750
|
|
|
|
|
|
|
|
|
|
| |
This un-reverts r179735 and reverts commit r180574.
This fixes assertion failures for me locally and should fix the failures
on Windows reported widely on llvm-dev. We should check if the bots
caught this and if so why not.
llvm-svn: 180722
|
|
|
|
| |
llvm-svn: 180574
|
|
|
|
|
|
| |
parameter attribute 'returned', which is taken advantage of in target-independent tail call opportunity detection and in ARM call lowering (when placed on an integral first parameter).
llvm-svn: 179925
|
|
|
|
| |
llvm-svn: 179849
|
|
|
|
| |
llvm-svn: 179798
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Semantics of parameters named Index and Idx were inconsistent between
"include/llvm/IR/Attributes.h", "lib/IR/AttributeImpl.h" and
"lib/IR/Attributes.cpp": sometimes these were fixed 1-based indexes of IR
parameters (or AttributeSet::ReturnIndex for IR return values or
AttributeSet::FunctionIndex for IR functions), other times they were the
internal slot for storage in the underlying AttributeSetImpl. I renamed usage of
the former to "Index" and usage of the latter to "Slot" ("Slot" was already
being used consistently for the latter in a subset of cases)
Patch by Stephen Lin!
llvm-svn: 179791
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Verify::VerifyParameterAttrs in "lib/IR/Verifier.cpp" and
AttrBuilder::removeFunctionOnlyAttrs in "lib/IR/Attributes.cpp" (only called
by Verify::VerifyFunctionAttrs) separately maintained a list of function-only
attribute types. I've consolidated the logic into a new function used for
both cases in "lib/IR/Verifier.cpp", so this logic is in one place (other
than the AsmParser front-end)
2. Various functions in "lib/IR/Verifier.cpp" passed AttributeSet around by
reference needlessly, as it's just a handle to an immutable pimpl body.
Patch by Stephen Lin!
llvm-svn: 179790
|
|
|
|
|
|
|
|
|
|
| |
attributes in the "old" style.
It's sometimes beneficial to emit a testcase with the old style attribute
syntax. Allow someone to do this.
<rdar://problem/13563209>
llvm-svn: 179735
|
|
|
|
|
|
| |
up putback to clang for mips16.
llvm-svn: 176968
|
|
|
|
|
|
| |
that doesn't exist.
llvm-svn: 176289
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are two related changes (one in llvm, one in clang).
LLVM:
- rename address_safety => sanitize_address (the enum value is the same, so we preserve binary compatibility with old bitcode)
- rename thread_safety => sanitize_thread
- rename no_uninitialized_checks -> sanitize_memory
CLANG:
- add __attribute__((no_sanitize_address)) as a synonym for __attribute__((no_address_safety_analysis))
- add __attribute__((no_sanitize_thread))
- add __attribute__((no_sanitize_memory))
for S in address thread memory
If -fsanitize=S is present and __attribute__((no_sanitize_S)) is not
set llvm attribute sanitize_S
llvm-svn: 176075
|
|
|
|
| |
llvm-svn: 175846
|
|
|
|
| |
llvm-svn: 175843
|
|
|
|
|
|
|
|
| |
The 'nobuiltin' attribute is applied to call sites to indicate that LLVM should
not treat the callee function as a built-in function. I.e., it shouldn't try to
replace that function with different code.
llvm-svn: 175835
|
|
|
|
|
|
|
| |
Currently we're at 34. Bitset should compile into virtually the same code as
uint64_t here.
llvm-svn: 175437
|
|
|
|
| |
llvm-svn: 175373
|
|
|
|
|
|
|
|
| |
Avoids malloc and is a lot denser. We lose iteration over target independent
attributes, but that's a strange interface anyways and didn't have any users
outside of AttrBuilder.
llvm-svn: 175370
|
|
|
|
| |
llvm-svn: 175252
|
|
|
|
|
|
| |
This reverts commit 82c101153fe7b35bce48781fab038e1b8f31a7bd.
llvm-svn: 175250
|
|
|
|
| |
llvm-svn: 175235
|
|
|
|
| |
llvm-svn: 175048
|
|
|
|
| |
llvm-svn: 175046
|
|
|
|
| |
llvm-svn: 174948
|
|
|
|
|
|
|
|
|
|
|
|
| |
This emits the attribute groups that are used by the functions. (It currently
doesn't print out return type or parameter attributes within attribute groups.)
Note: The functions still retrieve their attributes from the "old" bitcode
format (using the deprecated 'Raw()' method). This means that string attributes
within an attribute group will not show up during a disassembly. This will be
addressed in a future commit.
llvm-svn: 174867
|
|
|
|
| |
llvm-svn: 174864
|
|
|
|
| |
llvm-svn: 174848
|
|
|
|
| |
llvm-svn: 174834
|
|
|
|
| |
llvm-svn: 174824
|
|
|
|
|
|
|
| |
Fix the 'operator==' and 'hasAttributes' queries to take into account
target-dependent attributes.
llvm-svn: 174481
|
|
|
|
|
|
|
|
| |
This is useful when parsing an object that references multiple attribute groups.
N.B. If both builders have alignments specified, then they should match!
llvm-svn: 174480
|
|
|
|
|
|
| |
AttributeSet.
llvm-svn: 174467
|
|
|
|
|
|
|
|
| |
The stuff we're handing are all enums (Attribute::AttrKind), integers and
strings. Don't convert them to Constants, which is an unnecessary step here. The
rest of the changes are mostly mechanical.
llvm-svn: 174456
|
|
|
|
| |
llvm-svn: 174356
|
|
|
|
|
|
|
|
|
| |
Rename the PARAMATTR_CODE_ENTRY to PARAMATTR_CODE_ENTRY_OLD. It will be replaced
by another encoding. Keep around the current LLVM attribute encoder/decoder
code, but move it to the bitcode directories so that no one's tempted to use
them.
llvm-svn: 174335
|
|
|
|
| |
llvm-svn: 174251
|
|
|
|
|
|
|
| |
Use the AttributeSet's iterators in AttrBuilder::hasAttributes() when
determining of the intersection of the AttrBuilder and AttributeSet is non-null.
llvm-svn: 174250
|
|
|
|
|
|
| |
This Constant could be an aggregate to represent multiple values.
llvm-svn: 174228
|
|
|
|
|
|
| |
functionality change.
llvm-svn: 174132
|
|
|
|
| |
llvm-svn: 174130
|
|
|
|
|
|
| |
attributes from an AttrBuilder.
llvm-svn: 174123
|
|
|
|
|
|
| |
in a nice way.
llvm-svn: 174120
|
|
|
|
|
|
| |
descriptive of what it actually is.
llvm-svn: 174116
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The AttrBuilder is for building a collection of attributes. The Attribute object
holds only one attribute. So it's not really useful for the Attribute object to
have a creator which takes an AttrBuilder.
This has two fallouts:
1. The AttrBuilder no longer holds its internal attributes in a bit-mask form.
2. The attributes are now ordered alphabetically (hence why the tests have changed).
llvm-svn: 174110
|
|
|
|
|
|
|
|
|
|
| |
Attributes that are strings are typically target-dependent attributes. They are
of this form in the IR:
"attr"
"attr" = "val"
llvm-svn: 174090
|
|
|
|
|
|
|
| |
That function doesn't make sense anymore because there's only one attribute per
Attribute object now.
llvm-svn: 174044
|
|
|
|
|
|
|
|
| |
Attribute::hasAttribute() private."
It broke many hosts to crash.
llvm-svn: 174035
|
|
|
|
|
|
|
|
| |
The Attribute::hasAttributes() is kind of meaningless since an Attribute can
have only one attribute. And we would rather people use the 'operator=='
instead of Attribute::hasAttribute().
llvm-svn: 174026
|
|
|
|
|
|
|
|
|
| |
--- Reverse-merging r174010 into '.':
U include/llvm/IR/Attributes.h
U lib/IR/Verifier.cpp
U lib/IR/Attributes.cpp
llvm-svn: 174012
|