| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 163796
|
| |
|
|
| |
llvm-svn: 163795
|
| |
|
|
|
| |
Review: http://llvm-reviews.chandlerc.com/D39
llvm-svn: 163794
|
| |
|
|
|
|
| |
not what most people want -- it starts a new paragraph).
llvm-svn: 163793
|
| |
|
|
| |
llvm-svn: 163792
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
are within the lifetime zone. Sometime legitimate usages of allocas are
hoisted outside of the lifetime zone. For example, GEPS may calculate the
address of a member of an allocated struct. This commit makes sure that
we only check (abort regions or assert) for instructions that read and write
memory using stack frames directly. Notice that by allowing legitimate
usages outside the lifetime zone we also stop checking for instructions
which use derivatives of allocas. We will catch less bugs in user code
and in the compiler itself.
llvm-svn: 163791
|
| |
|
|
|
|
|
|
| |
* wrap code blocks in \code ... \endcode;
* refer to parameter names in paragraphs correctly (\arg is not what most
people want -- it starts a new paragraph).
llvm-svn: 163790
|
| |
|
|
|
|
| |
CMake (currently the only supported platfrom is 64-bit Linux). This patch makes 'clang++ -fthread-sanitizer' work for both clang in the build tree and installed clang
llvm-svn: 163789
|
| |
|
|
| |
llvm-svn: 163788
|
| |
|
|
| |
llvm-svn: 163787
|
| |
|
|
|
|
| |
- people may use too many distinct/old host compilers
llvm-svn: 163784
|
| |
|
|
| |
llvm-svn: 163783
|
| |
|
|
| |
llvm-svn: 163782
|
| |
|
|
|
|
|
|
|
|
| |
passing -fretain-comments-from-system-headers. By default, the
compiler no longer parses such documentation comments, as they
can result in a noticeable compile time/PCH slowdown.
Fixes <rdar://problem/11860820>.
llvm-svn: 163778
|
| |
|
|
|
|
| |
Patch by Brad Smith.
llvm-svn: 163777
|
| |
|
|
| |
llvm-svn: 163776
|
| |
|
|
| |
llvm-svn: 163775
|
| |
|
|
|
|
| |
byte represent 8 instructions and the reg modRM byte represents up to 64 instructions. Reduces modRM table from 43k entreis to 25k entries. Based on a patch from Manman Ren.
llvm-svn: 163774
|
| |
|
|
| |
llvm-svn: 163773
|
| |
|
|
|
|
| |
<rdar://problem/12061922>
llvm-svn: 163772
|
| |
|
|
|
|
|
|
|
| |
These will warn under -Wformat-non-iso, and will still be rejected
outright on other platforms.
<rdar://problem/12061922>
llvm-svn: 163771
|
| |
|
|
|
|
|
|
|
|
| |
The assumption that the target address for the relocation will always be
sizeof(intptr_t) and will always contain an addend for the relocation
value is very wrong. Default to no addend for now.
rdar://12157052
llvm-svn: 163765
|
| |
|
|
|
|
|
| |
When comparing to the macho relocation type enum value, make sure we're only
comparing against the bits in the RelType that correspond.
llvm-svn: 163764
|
| |
|
|
| |
llvm-svn: 163763
|
| |
|
|
|
|
| |
Thanks Jordan.
llvm-svn: 163762
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We don't have enough GR64_TC registers when calling a varargs function
with 6 arguments. Since %al holds the number of vector registers used,
only %r11 is available as a scratch register.
This means that addressing modes using both base and index registers
can't be folded into TCRETURNmi64.
<rdar://problem/12282281>
llvm-svn: 163761
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Objective-C related to NSException.
Fixes <rdar://problem/12287498>
I debated whether or not this logic should be sunk into the CFG
itself. It's not clear if we should, as different analyses may
wish to have different policies. We can re-evaluate this in the
future.
llvm-svn: 163760
|
| |
|
|
|
|
|
|
|
|
| |
in NSException to a helper object in libAnalysis that can also
be used by Sema. Not sure if the predicate name 'isImplicitNoReturn'
is the best one, but we can massage that later.
No functionality change.
llvm-svn: 163759
|
| |
|
|
| |
llvm-svn: 163758
|
| |
|
|
|
|
|
|
|
|
| |
This function writes out the current values of the counters and then resets
them. This can be used similarly to the __gcov_flush function to sync the
counters when need be. For instance, in a situation where the application
doesn't exit.
<rdar://problem/12185886>
llvm-svn: 163757
|
| |
|
|
|
|
|
|
|
|
|
|
| |
more robust way to address a few FIXMEs.
The initial implementation, r163342, built the IR asm string and then tried to
patch things on the fly without enough context. Specifically, it didn't skip
mnemonics nor did it track with assembly instruction an expression was related
to. The new implementation patches the operands and then builds the final
IR string.
llvm-svn: 163756
|
| |
|
|
|
|
|
|
|
|
|
| |
Make clang emit a flag for DW_AT_object_pointer for the artificial
args where it should (implicit first arguments). FileCheck-ize a
test as well and update tests to take into account the object
pointer flag.
rdar://9797999
llvm-svn: 163755
|
| |
|
|
|
|
|
|
|
|
|
| |
Add some support for dealing with an object pointer on arguments.
Part of rdar://9797999
which now supports adding the object pointer attribute to the
subprogram as it should.
llvm-svn: 163754
|
| |
|
|
|
|
|
|
|
| |
1. Remove RA from list of allocatable registers
2. Enable d,y,r constraint inline assembly instructions
Patch by Reed Kotler.
llvm-svn: 163753
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
static Qualifiers removeCommonQualifiers(Qualifiers &L, Qualifiers &R)
Removes the common qualifiers from L and R and returns them in a new Qualifier.
This will be used in template diffing.
void removeQualifiers(Qualifiers Q)
Removes the qualifiers in Q from the current qualifier.
This replaces the current underlying implementation of operator- and
operator -= which only performed bit masking.
llvm-svn: 163752
|
| |
|
|
| |
llvm-svn: 163751
|
| |
|
|
|
|
|
|
| |
type is void.
Fixes a false positive found by analyzing LLVM code base.
llvm-svn: 163750
|
| |
|
|
| |
llvm-svn: 163749
|
| |
|
|
| |
llvm-svn: 163748
|
| |
|
|
|
|
|
|
|
| |
Again, GCC is more aggressive about reusing temporary space than we are,
leading to Release build crashes for this undefined behavior.
PR13710 (though it may not be the only problem there)
llvm-svn: 163747
|
| |
|
|
|
|
|
| |
We mostly just don't want to crash analyzing this test case; it's likely
the code found here will actually crash if compiled and run.
llvm-svn: 163746
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently we don't update the dynamic type of a C++ object when it is
cast. This can cause the situation above, where the static type of the
region is now known to be a subclass of the dynamic type.
Once we start updating DynamicTypeInfo in response to the various kinds
of casts in C++, we can re-add this assert to make sure we don't miss
any cases. This work is tracked by <rdar://problem/12287087>.
In -Asserts builds, we will simply not return any runtime definition
when our DynamicTypeInfo is known to be incorrect like this.
llvm-svn: 163745
|
| |
|
|
|
|
|
|
|
|
|
|
| |
type is worse."
Using the static type may be inconsistent with later calls. We should just
report that there is no inlining definition available if the static type is
better than the dynamic type. See next commit.
This reverts r163644 / 19d5886d1704e24282c86217b09d5c6d35ba604d.
llvm-svn: 163744
|
| |
|
|
|
|
|
|
|
|
|
| |
- BlockAddress has no support of BA + offset form and there is no way to
propagate that offset into machine operand;
- Add BA + offset support and a new interface 'getTargetBlockAddress' to
simplify target block address forming;
- All targets are modified to use new interface and X86 backend is enhanced to
support BA + offset addressing.
llvm-svn: 163743
|
| |
|
|
|
|
| |
NULL pointer
llvm-svn: 163742
|
| |
|
|
|
|
| |
// rdar://12280826
llvm-svn: 163741
|
| |
|
|
|
|
|
|
|
|
|
| |
There are two evils we can choose from:
- Name overlap between isA-matcher and llvm::isa<>()
- Bad name for what the isA-matcher currently does
After some discussion we have agreed to go with the latter evil.
Review: http://llvm-reviews.chandlerc.com/D40
llvm-svn: 163740
|
| |
|
|
| |
llvm-svn: 163739
|
| |
|
|
|
|
|
| |
__autoreleasing is explicitely added to param type.
// rdar://12280826
llvm-svn: 163738
|
| |
|
|
| |
llvm-svn: 163737
|