Andrew Trick
e81211f45c
Clarified the SCEV getSmallConstantTripCount interface with in-your-face comments.
...
This interface is misleading and dangerous, but it is actually what we need for unrolling.
llvm-svn: 147926
2012-01-11 06:52:55 +00:00
Douglas Gregor
7363fb05fd
C11 allows typedefs to be redefined. Implement this in C11 mode, and
...
downgrade the default-error warning to an ExtWarn in
C90/99. <rdar://problem/10668057>
llvm-svn: 147925
2012-01-11 04:25:01 +00:00
Rafael Espindola
647841b181
Add big endian mips support. Based on a patch by Jack Carter.
...
llvm-svn: 147924
2012-01-11 04:04:14 +00:00
Rafael Espindola
870c4e92b9
Add the skeleton of an asm parser for mips.
...
llvm-svn: 147923
2012-01-11 03:56:41 +00:00
Andrew Trick
642f0f6a40
ARM Ld/St Optimizer fix.
...
Allow LDRD to be formed from pairs with different LDR encodings. This was the original intention of the pass. Somewhere along the way, the LDR opcodes were refined which broke the optimization. We really don't care what the original opcodes are as long as they both map to the same LDRD and the immediate still fits.
Fixes rdar://10435045 ARMLoadStoreOptimization cannot handle mixed LDRi8/LDRi12
llvm-svn: 147922
2012-01-11 03:56:08 +00:00
Jakob Stoklund Olesen
05ff7f06fb
Disable test that seems to expose an unrelated Linux issue.
...
llvm-svn: 147921
2012-01-11 03:42:27 +00:00
Eli Friedman
027e9c3ebc
Revert changes to lib/Driver in r147917; I didn't mean to commit this.
...
llvm-svn: 147920
2012-01-11 02:41:15 +00:00
Kostya Serebryany
41cdb8614c
[asan] remove OS-dependent headers from asan_internal.h
...
llvm-svn: 147919
2012-01-11 02:39:16 +00:00
Zhongxing Xu
f0cb43f561
Add elidable CXXConstructExpr as block-level expr. It converts an lvalue to a rvalue, which is a useful step during AST evaluation.
...
llvm-svn: 147918
2012-01-11 02:39:07 +00:00
Eli Friedman
20139d3809
Start refactoring code for capturing variables and 'this' so that it is shared between lambda expressions and block literals.
...
llvm-svn: 147917
2012-01-11 02:36:31 +00:00
Kostya Serebryany
0c8fa7b8ed
[asan] remove OS-dependent includes from asan_interceptors.h
...
llvm-svn: 147916
2012-01-11 02:32:40 +00:00
Sean Callanan
ee458a7785
After thinking about it, it doesn't seem right
...
to make assumptions if the type is unsized. We
just give up (and let the JIT handle it) instead.
llvm-svn: 147915
2012-01-11 02:23:25 +00:00
Jim Ingham
c354928786
Don't assert but report & return a NULL type if we end up parsing a type we are in the middle of parsing.
...
llvm-svn: 147914
2012-01-11 02:21:12 +00:00
Kostya Serebryany
1dd51b53b2
[asan] move TSD code into asan_posix.cc
...
llvm-svn: 147913
2012-01-11 02:21:06 +00:00
Jakob Stoklund Olesen
8b1d023a4a
Detect when a value is undefined on an edge to a landing pad.
...
Consider this code:
int h() {
int x;
try {
x = f();
g();
} catch (...) {
return x+1;
}
return x;
}
The variable x is undefined on the first edge to the landing pad, but it
has the f() return value on the second edge to the landing pad.
SplitAnalysis::getLastSplitPoint() would assume that the return value
from f() was live into the landing pad when f() throws, which is of
course impossible.
Detect these cases, and treat them as if the landing pad wasn't there.
This allows spill code to be inserted after the function call to f().
<rdar://problem/10664933>
llvm-svn: 147912
2012-01-11 02:07:05 +00:00
Jakob Stoklund Olesen
67aec12409
Exclusively use SplitAnalysis::getLastSplitPoint().
...
Delete the alternative implementation in LiveIntervalAnalysis.
These functions computed the same thing, but SplitAnalysis caches the
result.
llvm-svn: 147911
2012-01-11 02:07:00 +00:00
Kostya Serebryany
332923be32
[asan] get rid of the scary TSD destructor code. Now, we store the leaky AsanThreadSummary in TSD and never remove it from there.
...
llvm-svn: 147910
2012-01-11 02:03:16 +00:00
Johnny Chen
4876b5fccd
Add more usage examples.
...
llvm-svn: 147909
2012-01-11 01:59:55 +00:00
Greg Clayton
8b35334e0c
Fixed a missing space when reporting errors and warning through the module
...
and also print out the full path and architecture.
llvm-svn: 147908
2012-01-11 01:59:18 +00:00
Johnny Chen
e9f97704ea
Add usage examples of recently added functionality.
...
llvm-svn: 147907
2012-01-11 01:42:58 +00:00
Sean Callanan
285e4b22f5
If the size of a type can't be determined, default
...
to assume it's of pointer size.
llvm-svn: 147906
2012-01-11 01:36:21 +00:00
John McCall
fd3b664f30
Typo in test.
...
llvm-svn: 147905
2012-01-11 01:35:55 +00:00
Ted Kremenek
3f406ba4bf
Remove '#if 0' from ExprEngine::InlineCall(), and start fresh by wiring up inlining for straight C calls.
...
My hope is to reimplement this from first principles based on the simplifications of removing unneeded node builders
and re-evaluating how C++ calls are handled in the CFG. The hope is to turn inlining "on-by-default" as soon as possible
with a core set of things working well, and then expand over time.
llvm-svn: 147904
2012-01-11 01:06:27 +00:00
Nick Kledzik
f4fb2c5ac8
A couple of big refactorings: 1) Move most attributes of Atom down to DefinedAtom, so only atoms representing definitions need to implement them. 2) Remove definitionTentative, definitionWeak, mergeDuplicates, and autoHide. Replace with merge and interposable attributes. 3) Make all methods on Atom be virtual so that future object file readers can lazily generated attributes
...
llvm-svn: 147903
2012-01-11 01:06:19 +00:00
Evan Cheng
d9725a38d6
Avoid CSE of instructions which define physical registers across MBBs unless
...
the physical registers are not allocatable.
llvm-svn: 147902
2012-01-11 00:38:11 +00:00
Johnny Chen
17b4ea54bf
Snapshot of initial work for ARM watchpoint support on the debugserver.
...
It is incomplete and untested; passes the compilation only.
llvm-svn: 147901
2012-01-11 00:35:13 +00:00
John McCall
9b80c2186f
Do placeholder conversions on array bounds in both declarators and
...
new-expressions.
llvm-svn: 147900
2012-01-11 00:14:46 +00:00
Bill Wendling
c79155192d
If the global variable is removed by the linker, then don't constant merge it
...
with other symbols.
An object in the __cfstring section is suppoed to be filled with CFString
objects, which have a pointer to ___CFConstantStringClassReference followed by a
pointer to a __cstring. If we allow the object in the __cstring section to be
merged with another global, then it could end up in any section. Because the
linker is going to remove these symbols in the final executable, we shouldn't
bother to merge them.
<rdar://problem/10564621>
llvm-svn: 147899
2012-01-11 00:13:08 +00:00
Howard Hinnant
d9e7393741
This is a transitory commit for __dynamic_cast. It contains debugging statements that are not intended to be in the finished product. However some of the dubbing statements themselves contain important documentation such as how to navigate a __class_type_info hierarchy, documenting object offset and inheritance access. The intention is that this debugging code will migrate into both actual code and comments. And capturing it here so that there is no chance this stuff will be lost.
...
llvm-svn: 147898
2012-01-11 00:11:17 +00:00
Eric Christopher
43a1182975
Don't avoid recursing for pointer types, just reference types. Expand on
...
the comment.
Fixes constvars.exp on the gdb test builder.
llvm-svn: 147897
2012-01-11 00:01:29 +00:00
Kostya Serebryany
258d7b4182
[asan] hopefully fix the build on MacOS 10.6 (the code did work on 10.7, where I tested it)
...
llvm-svn: 147896
2012-01-10 23:36:59 +00:00
Johnny Chen
c260232dfa
Add comment for build_and_run_with_source_atoms_expr() and remove redundant #include from basic_type.cpp.
...
llvm-svn: 147895
2012-01-10 23:36:06 +00:00
Akira Hatanaka
ee65b744e8
Remove switch/case statements and call GetFloatingPointTy() instead to get the
...
floating point type.
llvm-svn: 147894
2012-01-10 23:30:49 +00:00
Johnny Chen
0d81fe7a77
Add documentation for the generic functions build_and_run() and build_and_run_expr() called from
...
the Test*Types*.py test cases.
llvm-svn: 147893
2012-01-10 23:22:57 +00:00
Akira Hatanaka
79f0461c38
Flatten float complex arguments. N32/64 requires float complex arguments be
...
passed in floating point registers.
llvm-svn: 147892
2012-01-10 23:12:19 +00:00
Chad Rosier
a415140a2c
Add test case for r147881.
...
llvm-svn: 147891
2012-01-10 23:09:53 +00:00
Lang Hames
995c63329a
Fixed order of operands in comment to match code.
...
llvm-svn: 147890
2012-01-10 22:53:20 +00:00
Akira Hatanaka
21ee88cc1c
Remove space.
...
llvm-svn: 147889
2012-01-10 22:44:52 +00:00
Joerg Sonnenberger
96cd35cf6d
Default stack alignment for 32bit x86 should be 4 Bytes, not 8 Bytes.
...
Add a test that checks the stack alignment of a simple function for
Darwin, Linux and NetBSD for 32bit and 64bit mode.
llvm-svn: 147888
2012-01-10 22:43:53 +00:00
Akira Hatanaka
428f5b2008
Add field IsIEEE in FloatingLiteral to distinguish between different 128-bit
...
floating point formats.
llvm-svn: 147887
2012-01-10 22:40:09 +00:00
Greg Clayton
8ffc4f11ce
Disable ARMDisassembler.framework support which was used for software single stepping.
...
llvm-svn: 147886
2012-01-10 22:33:56 +00:00
Jakob Stoklund Olesen
20f1dd5faf
Consider unknown alignment caused by OptimizeThumb2Instructions().
...
This function runs after all constant islands have been placed, and may
shrink some instructions to their 2-byte forms. This can actually cause
some constant pool entries to move out of range because of growing
alignment padding.
Treat instructions that may be shrunk the same as inline asm - they
erode the known alignment bits.
Also reinstate an old assertion in verify(). It is correct now that
basic block offsets include alignments.
Add a single large test case that will hopefully exercise many parts of
the constant island pass.
<rdar://problem/10670199>
llvm-svn: 147885
2012-01-10 22:32:14 +00:00
Evan Cheng
da46832e42
80 col violation.
...
llvm-svn: 147884
2012-01-10 22:27:32 +00:00
Jim Ingham
82283e8e91
Check the return value of GetBasicInfo before dereferencing it. <rdar://problem/10568492>
...
llvm-svn: 147883
2012-01-10 22:21:42 +00:00
Douglas Gregor
21b3b298c4
When something goes wrong in type-checking a namespace definition, make the namespace declaration invalid
...
llvm-svn: 147882
2012-01-10 22:14:10 +00:00
Chad Rosier
1a8f0ccd8c
Add missing VEX predicates to VMOVSDto64rr/VMOVSDto64mr. This fixes a few
...
failing test cases on our internal AVX nightly tester.
rdar://10663637
llvm-svn: 147881
2012-01-10 22:14:06 +00:00
Devang Patel
227b6279b6
Let asm parser query asm syntax dialect.
...
llvm-svn: 147880
2012-01-10 21:49:42 +00:00
Kostya Serebryany
a82f0d4950
[asan] move OS-dependent code away from asan_lock.h
...
llvm-svn: 147878
2012-01-10 21:24:40 +00:00
Kevin Enderby
f7d77069ca
This is the matching change for the data structure name changes for the
...
functional change in r147860 to use DW_TAG_label's instead TAG_subprogram's.
This only changes names and updates comments. No functional change.
llvm-svn: 147877
2012-01-10 21:12:34 +00:00
Jim Grosbach
74ac7d50a1
ARM updating VST2 pseudo-lowering fixed vs. register update.
...
rdar://10663487
llvm-svn: 147876
2012-01-10 21:11:12 +00:00