| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
Patch by Quentin Colombet <qcolombet@apple.com>
Original description:
"""
The attached patch is the first step to have a better control on Oz related optimizations.
The Oz optimization level focuses on code size, thus I propose to add an attribute called ForceSizeOpt.
"""
llvm-svn: 166422
|
|
|
|
|
|
| |
own class named AttrBuilder. No functionality change.
llvm-svn: 165960
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 165899
|
|
|
|
|
|
|
|
|
| |
value but later turns out to be a function.
Unfortunately, we can't fold tests into a single file because we only get one
error out of llvm-as.
llvm-svn: 165680
|
|
|
|
|
|
| |
builder.
llvm-svn: 165495
|
|
|
|
| |
llvm-svn: 165494
|
|
|
|
|
|
|
| |
We use the enums to query whether an Attributes object has that attribute. The
opaque layer is responsible for knowing where that specific attribute is stored.
llvm-svn: 165488
|
|
|
|
| |
llvm-svn: 165465
|
|
|
|
| |
llvm-svn: 165458
|
|
|
|
|
|
| |
attributes objects.
llvm-svn: 165436
|
|
|
|
|
|
| |
calling conventions.
llvm-svn: 164948
|
|
|
|
| |
llvm-svn: 164860
|
|
|
|
| |
llvm-svn: 164373
|
|
|
|
|
|
| |
Attributes class. Now with fix.
llvm-svn: 164370
|
|
|
|
| |
llvm-svn: 164309
|
|
|
|
|
|
| |
Attributes class.
llvm-svn: 164308
|
|
|
|
| |
llvm-svn: 164268
|
|
|
|
|
|
| |
inteldialect.
llvm-svn: 163231
|
|
|
|
| |
llvm-svn: 163181
|
|
|
|
|
|
|
| |
implementation does not co-exist well with how the sideeffect and alignstack
attributes are handled. The reverts r161641.
llvm-svn: 163174
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
make it more consistent with its intended semantics.
The `linker_private_weak_def_auto' linkage type was meant to automatically hide
globals which never had their addresses taken. It has nothing to do with the
`linker_private' linkage type, which outputs the symbols with a `l' (ell) prefix
among other things.
The intended semantic is more like the `linkonce_odr' linkage type.
Change the name of the linkage type to `linkonce_odr_auto_hide'. And therefore
changing the semantics so that it produces the correct output for the linker.
Note: The old linkage name `linker_private_weak_def_auto' will still parse but
is not a synonym for `linkonce_odr_auto_hide'. This should be removed in 4.0.
<rdar://problem/11754934>
llvm-svn: 162114
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This new attribute is intended to be used by the backend to determine how
the inline asm string should be parsed/printed. This patch adds the
ia_nsdialect attribute and also adds a test case to ensure the IR is
correctly parsed, but there is no functional change at this time.
The standard dialect is assumed to be AT&T. Therefore, this attribute
should only be added to MS-style inline assembly statements, which use
the Intel dialect. If we ever support more dialects we'll need to
add additional state to the attribute.
llvm-svn: 161641
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows the user/front-end to specify a model that is better
than what LLVM would choose by default. For example, a variable
might be declared as
@x = thread_local(initialexec) global i32 42
if it will not be used in a shared library that is dlopen'ed.
If the specified model isn't supported by the target, or if LLVM can
make a better choice, a different model may be used.
llvm-svn: 159077
|
|
|
|
| |
llvm-svn: 157556
|
|
|
|
| |
llvm-svn: 149967
|
|
|
|
| |
llvm-svn: 149897
|
|
|
|
|
|
|
|
|
| |
but with a critical fix to the SelectionDAG code that optimizes copies
from strings into immediate stores: the previous code was stopping reading
string data at the first nul. Address this by adding a new argument to
llvm::getConstantStringInfo, preserving the behavior before the patch.
llvm-svn: 149800
|
|
|
|
| |
llvm-svn: 149562
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
test to fail.
These are:
r149348
r149351
r149352
r149354
r149356
r149357
r149361
r149362
r149364
r149365
llvm-svn: 149470
|
|
|
|
|
|
| |
ConstantDataArray::getString instead.
llvm-svn: 149365
|
|
|
|
| |
llvm-svn: 148578
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: LLVM needs more function attributes than currently available (32 bits).
One such proposed attribute is "address_safety", which shows that a function is being checked for address safety (by AddressSanitizer, SAFECode, etc).
Solution:
- extend the Attributes from 32 bits to 64-bits
- wrap the object into a class so that unsigned is never erroneously used instead
- change "unsigned" to "Attributes" throughout the code, including one place in clang.
- the class has no "operator uint64 ()", but it has "uint64_t Raw() " to support packing/unpacking.
- the class has "safe operator bool()" to support the common idiom: if (Attributes attr = getAttrs()) useAttrs(attr);
- The CTOR from uint64_t is marked explicit, so I had to add a few explicit CTOR calls
- Add the new attribute "address_safety". Doing it in the same commit to check that attributes beyond first 32 bits actually work.
- Some of the functions from the Attribute namespace are worth moving inside the class, but I'd prefer to have it as a separate commit.
Tested:
"make check" on Linux (32-bit and 64-bit) and Mac (10.6)
built/run spec CPU 2006 on Linux with clang -O2.
This change will break clang build in lib/CodeGen/CGCall.cpp.
The following patch will fix it.
llvm-svn: 148553
|
|
|
|
|
|
|
|
| |
of several newly un-defaulted switches. This also helps optimizers
(including LLVM's) recognize that every case is covered, and we should
assume as much.
llvm-svn: 147861
|
|
|
|
| |
llvm-svn: 147855
|
|
|
|
|
|
|
|
| |
"half precision" floating-point with a first-class type.
This patch adds basic IR support (but not codegen support).
llvm-svn: 146786
|
|
|
|
| |
llvm-svn: 145934
|
|
|
|
| |
llvm-svn: 145801
|
|
|
|
|
|
| |
only produced by LLVM 2.9 and earlier. LLVM 3.0 and later prefers "load volatile".
llvm-svn: 145172
|
|
|
|
|
|
|
| |
I think this is the last of autoupgrade that can be removed in 3.1.
Can the atomic upgrade stuff also go?
llvm-svn: 145169
|
|
|
|
|
|
| |
LLVM 3.0 and later.
llvm-svn: 145165
|
|
|
|
| |
llvm-svn: 142323
|
|
|
|
|
|
|
|
| |
appropriate CMake dependencies.
Thanks to Raphael Espindola for tracking down the CMake issues.
llvm-svn: 142306
|
|
|
|
|
|
|
|
|
|
|
|
| |
Linking CXX executable ../../bin/llvm-as
../../lib/libLLVMAsmParser.a(LLParser.cpp.o):/home/espindola/llvm/llvm/lib/AsmParser/LLParser.cpp:function llvm::LLParser::ParseTargetDefinition(): error: undefined reference to 'llvm::TargetData::parseSpecifier(llvm::StringRef, llvm::TargetData*)'
clang-3: error: linker command failed with exit code 1 (use -v to see invocation)
Revert "Validate target data layout strings."
This reverts commit 599d2d4c25d3aee63a21d9c67a88cd43bd971b7e.
llvm-svn: 142296
|
|
|
|
|
|
| |
Invalid strings in asm files will result in parse errors. Invalid string literals passed to TargetData constructors will result in an assertion.
llvm-svn: 142288
|
|
|
|
| |
llvm-svn: 141001
|
|
|
|
|
|
| |
things to disasterously over night, this can be reverted.
llvm-svn: 138702
|
|
|
|
| |
llvm-svn: 137933
|
|
|
|
|
|
|
|
|
|
| |
of the instruction.
Note that this change affects the existing non-atomic load and store
instructions; the parser now accepts both forms, and the change is noted
in the release notes.
llvm-svn: 137527
|