| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 148904
|
|
|
|
| |
llvm-svn: 148903
|
|
|
|
| |
llvm-svn: 148902
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
will allow to disable
address safety analysis (such as e.g. AddressSanitizer or SAFECode) for a specific function.
When building with AddressSanitizer, add AddressSafety function attribute to every generated function
except for those that have __attribute__((no_address_safety_analysis)).
With this patch we will be able to
1. disable AddressSanitizer for a particular function
2. disable AddressSanitizer-hostile optimizations (such as some cases of load widening) when AddressSanitizer is on.
llvm-svn: 148842
|
|
|
|
|
|
| |
type of pointers.
llvm-svn: 148753
|
|
|
|
| |
llvm-svn: 148744
|
|
|
|
|
|
| |
X86 backend in LLVM.
llvm-svn: 148689
|
|
|
|
|
|
| |
variable. The assertion doesn't cover quite as much as it should, but it's a good start, at least.
llvm-svn: 148625
|
|
|
|
|
|
|
|
|
| |
a forward declaration unless we already have a type. We can fill it in
later if it's actually used.
Fixes PR11345
llvm-svn: 148584
|
|
|
|
| |
llvm-svn: 148577
|
|
|
|
| |
llvm-svn: 148554
|
|
|
|
| |
llvm-svn: 148388
|
|
|
|
| |
llvm-svn: 148375
|
|
|
|
| |
llvm-svn: 148368
|
|
|
|
| |
llvm-svn: 148361
|
|
|
|
|
|
| |
patch (slightly revised) by Aaron Ballman.
llvm-svn: 148359
|
|
|
|
| |
llvm-svn: 148358
|
|
|
|
|
|
| |
__builtin_*abs. Patch by Ruben Van Boxem.
llvm-svn: 148340
|
|
|
|
|
|
| |
that APValue-based constant emission knows how to emit member pointers.
llvm-svn: 148336
|
|
|
|
| |
llvm-svn: 148331
|
|
|
|
|
|
|
|
|
| |
or whatever else is required for the initialization instead of
assuming it can be done with a simple store.
Fixes PR11732.
llvm-svn: 148325
|
|
|
|
|
|
| |
generation for Objective-C; it may not be needed.
llvm-svn: 148317
|
|
|
|
|
|
| |
This allows -Wswitch-enum to find switches that need updating when these enums are modified.
llvm-svn: 148281
|
|
|
|
| |
llvm-svn: 148254
|
|
|
|
|
|
|
| |
statement which has an unscoped case inside it.
Patch by Aaron Ballman
llvm-svn: 148243
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add atomic-to/from-nonatomic cast types
- Emit atomic operations for arithmetic on atomic types
- Emit non-atomic stores for initialisation of atomic types, but atomic stores and loads for every other store / load
- Add a __atomic_init() intrinsic which does a non-atomic store to an _Atomic() type. This is needed for the corresponding C11 stdatomic.h function.
- Enables the relevant __has_feature() checks. The feature isn't 100% complete yet, but it's done enough that we want people testing it.
Still to do:
- Make the arithmetic operations on atomic types (e.g. Atomic(int) foo = 1; foo++;) use the correct LLVM intrinsic if one exists, not a loop with a cmpxchg.
- Add a signal fence builtin
- Properly set the fenv state in atomic operations on floating point values
- Correctly handle things like _Atomic(_Complex double) which are too large for an atomic cmpxchg on some platforms (this requires working out what 'correctly' means in this context)
- Fix the many remaining corner cases
llvm-svn: 148242
|
|
|
|
|
|
|
|
|
|
|
|
| |
we have a redeclarable type, and only use the new virtual versions
(getPreviousDeclImpl() and getMostRecentDeclImpl()) when we don't have
that type information. This keeps us from penalizing users with strict
type information (and is the moral equivalent of a "final" method).
Plus, settle on the names getPreviousDecl() and getMostRecentDecl()
throughout.
llvm-svn: 148187
|
|
|
|
| |
llvm-svn: 148179
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
APValue::Array and APValue::MemberPointer. All APValue values can now be emitted
as constants.
Add new CGCXXABI entry point for emitting an APValue MemberPointer. The other
entrypoints dealing with constant member pointers are no longer necessary and
will be removed in a later change.
Switch codegen from using EvaluateAsRValue/EvaluateAsLValue to
VarDecl::evaluateValue. This performs caching and deals with the nasty cases in
C++11 where a non-const object's initializer can refer indirectly to
previously-initialized fields within the same object.
Building the intermediate APValue object incurs a measurable performance hit on
pathological testcases with huge initializer lists, so we continue to build IR
directly from the Expr nodes for array and record types outside of C++11.
llvm-svn: 148178
|
|
|
|
|
|
| |
it. Based on patch by Yin Ma. Fixes PR11751.
llvm-svn: 148093
|
|
|
|
| |
llvm-svn: 147989
|
|
|
|
| |
llvm-svn: 147988
|
|
|
|
|
|
| |
argument when Offset is initialized.
llvm-svn: 147986
|
|
|
|
|
|
| |
Remove function MipsABIInfo::GetFloatingPointTy.
llvm-svn: 147985
|
|
|
|
| |
llvm-svn: 147933
|
|
|
|
|
|
| |
floating point type.
llvm-svn: 147894
|
|
|
|
|
|
| |
passed in floating point registers.
llvm-svn: 147892
|
|
|
|
| |
llvm-svn: 147889
|
|
|
|
|
|
|
|
|
|
| |
for the arm-linux-androideabi triple in particular.
Also use this to do a better job of selecting soft FP settings.
Patch by Evgeniy Stepanov.
llvm-svn: 147872
|
|
|
|
|
|
| |
passing on i386 and does not use registers.
llvm-svn: 147856
|
|
|
|
|
|
|
|
|
|
|
| |
CFStrings writable.
The strings (both Unicode and ASCII) should reside in a read-only section. E.g.,
__TEXT,__cstring instead of __DATA,__data. This is done by making the global
variable created for the strings constant despite the value of that flag.
<rdar://problem/10657500>
llvm-svn: 147845
|
|
|
|
|
|
| |
complete, remove some code from CGExprConstant which is no longer necessary. While I'm here, a couple minor tweaks to _Complex-in-C++. (Specifically, make _Complex types literal types, and don't warn for _Complex int.)
llvm-svn: 147840
|
|
|
|
|
|
|
| |
c++ objects with non-trivial assignment/copy functions.
Also, one additional sema check. // rdar://6137845
llvm-svn: 147817
|
|
|
|
| |
llvm-svn: 147791
|
|
|
|
|
|
| |
padding insertion will not work if the coerced type is not a structure.
llvm-svn: 147786
|
|
|
|
|
|
| |
c++ object properties. wip.
llvm-svn: 147750
|
|
|
|
|
|
| |
with non-trivial copies. // rdar://6137845
llvm-svn: 147735
|
|
|
|
| |
llvm-svn: 147730
|
|
|
|
|
|
|
|
| |
is inserted before the real argument. Padding is needed to ensure the backend
reads from or writes to the correct argument slots when the original alignment
of a byval structure is unavailable due to flattening.
llvm-svn: 147699
|
|
|
|
|
|
|
|
| |
currently turned off. // rdar://6137845
Also, fixes a test case which should be nonatomic under
new API.
llvm-svn: 147691
|