Chris Lattner
663ba91cc6
add "getLocation" method to AliasAnalysis for getting the source and
...
destination location of a memcpy/memmove. I'm not clear about whether
TBAA works on these, so I'm leaving it out for now. Dan, please revisit
this when convenient.
llvm-svn: 119928
2010-11-21 07:51:27 +00:00
Chris Lattner
e48c31ce33
implement PR8576, deleting dead stores with intervening may-alias stores.
...
llvm-svn: 119927
2010-11-21 07:34:32 +00:00
Chris Lattner
6e22221b37
file checkize
...
llvm-svn: 119926
2010-11-21 07:32:40 +00:00
Chris Lattner
9165d9d2ac
add some random notes.
...
llvm-svn: 119925
2010-11-21 07:05:31 +00:00
Francois Pichet
df946c3702
Fix warning: enumeration value 'IndirectField' not handled in switch.
...
llvm-svn: 119924
2010-11-21 06:49:41 +00:00
Owen Anderson
7e484e0be7
Use by-name rather than by-order operand matching for some NEON encodings.
...
llvm-svn: 119923
2010-11-21 06:47:06 +00:00
Chris Lattner
f7e896138e
optimize:
...
void a(int x) { if (((1<<x)&8)==0) b(); }
into "x != 3", which occurs over 100 times in 403.gcc but in no
other program in llvm-test.
llvm-svn: 119922
2010-11-21 06:44:42 +00:00
Francois Pichet
0565e5c455
Compilation error: remove extra comma.
...
llvm-svn: 119921
2010-11-21 06:22:53 +00:00
Chris Lattner
9de0176ef8
tail calls on x86 are implemented.
...
llvm-svn: 119920
2010-11-21 06:10:27 +00:00
Francois Pichet
783dd6ece4
Major anonymous union/struct redesign.
...
A new AST node is introduced:
def IndirectField : DDecl<Value>;
IndirectFields are injected into the anonymous's parent scope and chain back to
the original field. Name lookup for anonymous entities now result in an
IndirectFieldDecl instead of a FieldDecl.
There is no functionality change, the code generated should be the same.
llvm-svn: 119919
2010-11-21 06:08:52 +00:00
Jim Grosbach
e040a46eb3
BR_JTadd is ARM-only, so use the proper pseudo class to get the predicate.
...
llvm-svn: 119918
2010-11-21 01:26:01 +00:00
Rafael Espindola
26cb15a549
Handle PCRel relocations with absolute values. Fixes PR8656.
...
llvm-svn: 119917
2010-11-21 00:48:25 +00:00
Chris Lattner
58f9f58716
Implement PR8644: forwarding a memcpy value to a byval,
...
allowing the memcpy to be eliminated.
Unfortunately, the requirements on byval's without explicit
alignment are really weak and impossible to predict in the
mid-level optimizer, so this doesn't kick in much with current
frontends. The fix is to change clang to set alignment on all
byval arguments.
llvm-svn: 119916
2010-11-21 00:28:59 +00:00
Anders Carlsson
d470fef01d
Forward the -fno-elide-constructor argument to clang -cc1. Fixes PR8652.
...
llvm-svn: 119915
2010-11-21 00:09:52 +00:00
Chris Lattner
d78dbee431
a byval argument without an align can have an arbitrary alignment
...
requirement on the input pointer.
llvm-svn: 119914
2010-11-20 23:49:06 +00:00
Bill Wendling
c31de25137
A few more thumb instruction MC encodings.
...
llvm-svn: 119913
2010-11-20 22:52:33 +00:00
Eric Christopher
0a3c28bd6b
Rewrite address handling to use a structure with all the possible address
...
mode variables. Handle frame indexes in load/store and allocas again.
llvm-svn: 119912
2010-11-20 22:38:27 +00:00
Eric Christopher
d0aec3bf64
STRH only needs the additional operand, not t2STRH. Also invert conditional
...
to match the one from the load emitter above.
llvm-svn: 119911
2010-11-20 22:01:38 +00:00
Greg Clayton
facfd06c4f
When we resolve a forward declaration type, be sure to put it into the m_die_to_type map so we don't assert later when someone tries to resolve the type.
...
llvm-svn: 119910
2010-11-20 19:16:50 +00:00
Howard Hinnant
3dc6455ff0
N3191: C++ Timeout Specification
...
llvm-svn: 119909
2010-11-20 19:16:30 +00:00
Benjamin Kramer
ddd1b7b801
Simplify code. No change in functionality.
...
llvm-svn: 119908
2010-11-20 18:43:35 +00:00
Frits van Bommel
da17c921ba
Test commit: Fix two -Asserts mode warnings in StringMap.h.
...
llvm-svn: 119907
2010-11-20 18:37:24 +00:00
Howard Hinnant
092980dd65
N3123
...
llvm-svn: 119906
2010-11-20 18:25:22 +00:00
Anton Korobeynikov
36590fc72a
Make this compile on case-sensitive file systemsw
...
llvm-svn: 119905
2010-11-20 16:14:57 +00:00
Anton Korobeynikov
4687778398
Move some more hooks to TargetFrameInfo
...
llvm-svn: 119904
2010-11-20 15:59:32 +00:00
Benjamin Kramer
f6fb58a216
Silence Release build warnings about unused functions.
...
llvm-svn: 119903
2010-11-20 15:53:24 +00:00
Francois Pichet
4fd9b685ff
Disable warning C4291 on MSVC. Caused because class AttributeList provides a non implemented operator delete without a corresponding new.
...
llvm-svn: 119902
2010-11-20 15:39:03 +00:00
Duncan Sands
7c601ded34
On X86, MEMBARRIER, MFENCE, SFENCE, LFENCE are not target memory intrinsics,
...
so don't claim they are. They are allocated using DAG.getNode, so attempts
to access MemSDNode fields results in reading off the end of the allocated
memory. This fixes crashes with "llc -debug" due to debug code trying to
print MemSDNode fields for these barrier nodes (since the crashes are not
deterministic, use valgrind to see this). Add some nasty checking to try
to catch this kind of thing in the future.
llvm-svn: 119901
2010-11-20 11:25:00 +00:00
Zhongxing Xu
2cf9b135d4
Add comments.
...
llvm-svn: 119900
2010-11-20 08:17:16 +00:00
Zhanyong Wan
7426ea729c
Fix a typo in EnvironmentManager::bindExprAndLocation(). Reviewed by kremenek.
...
llvm-svn: 119899
2010-11-20 07:52:48 +00:00
Andrew Trick
cf7fefb25c
Removing the useless test that I added recently. It was meant as an example, but not complicated enough to merit another test.
...
llvm-svn: 119898
2010-11-20 07:26:51 +00:00
Zhongxing Xu
2c966716ff
Handle CFGAutomaticObjDtor.
...
llvm-svn: 119897
2010-11-20 06:53:12 +00:00
Andrew Trick
ada75c5ad1
RABasic fix. Regalloc is responsible for updating block live ins.
...
llvm-svn: 119896
2010-11-20 02:57:05 +00:00
Andrew Trick
799ec1c4d6
Whitespace.
...
llvm-svn: 119895
2010-11-20 02:43:55 +00:00
Sean Callanan
fbfd7ba547
Removed a stray dump() that made it into top-of-tree.
...
llvm-svn: 119890
2010-11-20 02:23:49 +00:00
Sean Callanan
a3aa0cf6e6
Made GetVariableValue() more robust in the face
...
of failures in the AST importer. Also ensured
that a variable will not be blindly added if
GetVariableValue() returns an error.
llvm-svn: 119889
2010-11-20 02:19:29 +00:00
Sean Callanan
80eee3a989
Removed a stray dump().
...
llvm-svn: 119888
2010-11-20 02:06:01 +00:00
Argyrios Kyrtzidis
de2bdf637e
Revert r119838 "Don't warn for empty 'if' body if there is a macro that expands to nothing"
...
and use a better and more general approach, where NullStmt has a flag to indicate whether it was preceded by an empty macro.
Thanks to Abramo Bagnara for the hint!
llvm-svn: 119887
2010-11-20 02:04:01 +00:00
Nick Lewycky
9331ed89f8
A bundle of whitespace changes, separated out from the functional changes.
...
llvm-svn: 119886
2010-11-20 01:29:55 +00:00
Jason Molenda
2d107dd02b
Change the DWARFExpression::Evaluate methods to take an optional
...
RegisterContext* - normally this is retrieved from the ExecutionContext's
StackFrame but when we need to evaluate an expression while creating
the stack frame list this can be a little tricky.
Add DW_OP_deref_size, needed for the _sigtramp FDE expression.
Add support for processing DWARF expressions in RegisterContextLLDB.
Update callers to DWARFExpression::Evaluate.
llvm-svn: 119885
2010-11-20 01:28:30 +00:00
Jakob Stoklund Olesen
40e78b4da0
Fix old GCC build error.
...
llvm-svn: 119884
2010-11-20 01:24:43 +00:00
Bill Wendling
284326bd69
Add more Thumb add instruction encodings.
...
llvm-svn: 119883
2010-11-20 01:18:47 +00:00
Bill Wendling
fe1de03629
Add Thumb encodings for some add instructions.
...
llvm-svn: 119882
2010-11-20 01:00:29 +00:00
Bill Wendling
e60fd5a9db
Add more encodings for Thumb instructions.
...
llvm-svn: 119881
2010-11-20 00:53:35 +00:00
Jakob Stoklund Olesen
8bf9e546d4
Detemplatize NodeRef.
...
It is now possible to navigate the B+-tree using NodeRef::subtree() and
NodeRef::size() without knowing the key and value template types used in the
tree.
llvm-svn: 119880
2010-11-20 00:49:00 +00:00
Jakob Stoklund Olesen
3864c518c2
Rename NodeBase::{key,val} as {first,second} and swap the BranchNode arrays such
...
that the noderefs are the first member in the object.
This is in preparation of detemplatization of tree navigation.
llvm-svn: 119879
2010-11-20 00:48:57 +00:00
Bill Wendling
0914d44fa4
Have the getAddrMode3OpValue() function in ARMCodeEmitter.cpp produce the same
...
value that the one in ARMMCCodeEmitter.cpp does.
llvm-svn: 119878
2010-11-20 00:26:37 +00:00
Greg Clayton
cd55b1957e
Revert the End of file stuff that was added as it was causing read threads
...
to hang around and take a ton of CPU time. Caroline will fix this when she
gets back from vacation.
llvm-svn: 119877
2010-11-20 00:17:57 +00:00
Douglas Gregor
06a3f30be9
Implement a simple hash function for libclang cursors
...
llvm-svn: 119876
2010-11-20 00:09:34 +00:00
Bill Wendling
54df187f25
Check for _setjmp too, because it's also used.
...
llvm-svn: 119875
2010-11-20 00:03:09 +00:00