Eli Friedman
55919a9ed7
Extend the undef ^ undef idiom once more. No testcase: I can't figure out how to actually trigger the codepath in question at the moment, but it might get exposed in the future.
...
llvm-svn: 137781
2011-08-16 22:38:34 +00:00
Chandler Carruth
f87d6c00e7
Switch this code to use the more idiomatic 'dyn_cast' pattern.
...
llvm-svn: 137780
2011-08-16 22:30:10 +00:00
Jim Grosbach
b7fa2c0a53
Thumb parsing diagnostics for low-reg requirements on ADD and MOV.
...
llvm-svn: 137779
2011-08-16 22:20:01 +00:00
Devang Patel
eb1bb4e419
Until now all debug info MDNodes referred to a root MDNode, a compile unit. This simplified handling of these needs in dwarf writer. However, one side effect of this is that during link time optimization all these MDNodes are _not_ uniqued. In other words there will be N number of MDNodes describing "int", "char" and all other types, which would suddenly grow when each object file starts using libraries like STL.
...
MDNodes graph structure such that compiler unit keeps track of important MDNodes and update dwarf writer to process mdnodes top-down instead of bottom up.
llvm-svn: 137778
2011-08-16 22:09:43 +00:00
Eli Friedman
0793eb4c46
A bunch of misc fixes to SCCPSolver::ResolvedUndefsIn, including a fix to stop
...
making random bad assumptions about instructions which are not explicitly listed.
Includes fix for rdar://9956541, a version of "undef ^ undef should return
0 because it's easier than arguing with users".
llvm-svn: 137777
2011-08-16 22:06:31 +00:00
Johnny Chen
0241f1441f
Add comment about recent change.
...
llvm-svn: 137776
2011-08-16 22:06:17 +00:00
Eric Christopher
d56ba41bc3
Remove tests that have been obsoleted or migrated to clang/optimizer tests.
...
llvm-svn: 137775
2011-08-16 21:46:25 +00:00
Jim Grosbach
64610e52e7
Add missing exit for 'case'.
...
llvm-svn: 137774
2011-08-16 21:42:31 +00:00
Eric Christopher
43b1188a71
Migrate test from llvm/test/FrontendC++.
...
llvm-svn: 137773
2011-08-16 21:41:54 +00:00
Eric Christopher
ed78181605
Migrate from llvm/test/FrontendC++ and FileCheckize.
...
llvm-svn: 137772
2011-08-16 21:41:52 +00:00
Eric Christopher
77214ad172
Migrate from llvm/test/FrontendC++.
...
llvm-svn: 137771
2011-08-16 21:41:50 +00:00
Eric Christopher
38a7c55cae
Migrate test from llvm/test/FrontendC++ and FileCheckize.
...
llvm-svn: 137770
2011-08-16 21:41:48 +00:00
Eric Christopher
88fa0f0eb7
Migrate test from llvm/test/FrontendC++.
...
llvm-svn: 137769
2011-08-16 21:41:46 +00:00
Eric Christopher
3f98c99b07
Migrate from llvm/test/FrontendC++.
...
llvm-svn: 137768
2011-08-16 21:41:44 +00:00
Eric Christopher
82da54d872
Migrate from llvm/test/FrontendC++.
...
llvm-svn: 137767
2011-08-16 21:41:41 +00:00
Eric Christopher
2e4877fcb2
Migrate test from llvm/test/FrontendC++.
...
llvm-svn: 137766
2011-08-16 21:41:40 +00:00
Eric Christopher
f1b912b88e
Migrate from llvm/test/FrontendC++.
...
llvm-svn: 137765
2011-08-16 21:41:38 +00:00
Eric Christopher
74733d2e12
Migrate varargs.cpp from llvm/test/FrontendC++.
...
llvm-svn: 137764
2011-08-16 21:41:35 +00:00
Eric Christopher
9eeae42a6e
Migrate weak-external.cpp from llvm/test/FrontendC++.
...
llvm-svn: 137763
2011-08-16 21:41:33 +00:00
Eric Christopher
148bdfa58a
Migrate x86-64-abi-sret-vs-2word-struct-param.cpp from
...
llvm/test/FrontendC++ and FileCheckize.
llvm-svn: 137762
2011-08-16 21:41:31 +00:00
Eric Christopher
8a24ed567c
Migrate thunk-linkonce-odr.cpp from llvm/test/FrontendC++.
...
llvm-svn: 137761
2011-08-16 21:41:26 +00:00
Ted Kremenek
e1962328f5
[analyzer] teach ExprEngine about loads from static C++ class fields. Fixes <rdar://problem/9948787>.
...
llvm-svn: 137760
2011-08-16 21:37:52 +00:00
Jim Grosbach
58ffdccab1
Thumb assembly parsing and encoding for ADD(register) instruction.
...
llvm-svn: 137759
2011-08-16 21:34:08 +00:00
Jordy Rose
59cce71af6
[analyzer] Overhaul of checker registration in preparation for basic plugin support. Removes support for checker groups (we can add them back in later if we decide they are still useful), and -analyzer-checker-help output is a little worse for the time being (no packages).
...
llvm-svn: 137758
2011-08-16 21:24:21 +00:00
Bill Wendling
d7c6c9141a
The resume instruction may throw. Return 'true' in this case.
...
llvm-svn: 137757
2011-08-16 21:15:50 +00:00
Jim Grosbach
7283da9bb2
Move some logic into a helper function and expand the commentary.
...
llvm-svn: 137756
2011-08-16 21:12:37 +00:00
Eli Friedman
56f2f21254
Minor bug in SCCP found by inspection. (I don't think it's possible to hit this with a normal pass pipeline, but fixing for completeness.)
...
llvm-svn: 137755
2011-08-16 21:12:35 +00:00
Jim Grosbach
2c21bf4b43
Add testcase for r137746.
...
llvm-svn: 137754
2011-08-16 21:11:21 +00:00
Devang Patel
0e3a9f645b
Robustify test, there is no need to check metadata number which can change.
...
llvm-svn: 137752
2011-08-16 21:01:06 +00:00
Devang Patel
0f9fa8bddc
Increment debug info version to accommodate upcoming change in debug info node structure.
...
llvm-svn: 137751
2011-08-16 21:00:05 +00:00
Devang Patel
ffa30ab216
Finalize debug info after all deferred globals are emitted.
...
llvm-svn: 137750
2011-08-16 20:58:22 +00:00
Johnny Chen
b7e62d0857
Comment change.
...
llvm-svn: 137749
2011-08-16 20:57:05 +00:00
Johnny Chen
4d9d9689a0
Add comment on known restrictions of the current implementation.
...
llvm-svn: 137748
2011-08-16 20:56:10 +00:00
Jim Grosbach
d3ad0aa413
Tidy up formatting.
...
llvm-svn: 137747
2011-08-16 20:55:41 +00:00
Jim Grosbach
3e941aee69
ARM thumb assembly parsing for arithmetic flag setting instructions.
...
Thumb one requires that many arithmetic instruction forms have an 'S'
suffix. For Thumb2, the whether the suffix is required or precluded depends
on whether the instruction is in an IT block. Use target parser predicates
to check for these sorts of context-sensitive constraints.
llvm-svn: 137746
2011-08-16 20:45:50 +00:00
Bill Wendling
8ddfc09e7a
Use the getFirstInsertionPt() method instead of getFirstNonPHI + an 'isa<>'
...
check for a LandingPadInst.
llvm-svn: 137745
2011-08-16 20:45:24 +00:00
Bill Wendling
ee1c2d2437
Add getFirstInsertionPt() method.
...
getFirstInsertionPt() returns an iterator to the first insertion point in a
basic block. This is after all PHIs and any other instruction which is required
to be at the top of the basic block (like LandingPadInst).
llvm-svn: 137744
2011-08-16 20:42:52 +00:00
Bill Wendling
55d875fa1c
I think there was some confusion about what I meant. :-) Replacing the comment.
...
llvm-svn: 137743
2011-08-16 20:41:17 +00:00
Jim Grosbach
d152e2cc00
Prefer diagnostics from target predicate in asm matcher.
...
llvm-svn: 137742
2011-08-16 20:12:35 +00:00
Johnny Chen
9fd6bbb77c
The redo script did not take into account the compiler and architecture configuration of the failed tests.
...
llvm-svn: 137741
2011-08-16 20:02:59 +00:00
Anna Zaks
a06421a02c
MacOSKeychainAPIChecker: Turn it on by default.
...
llvm-svn: 137740
2011-08-16 20:02:05 +00:00
Johnny Chen
e1cdc922b2
Take clang output into account.
...
llvm-svn: 137739
2011-08-16 19:59:22 +00:00
Jim Ingham
5c2a57291c
Re-enable the test for ValueAsUnsigned on a register Value.
...
llvm-svn: 137738
2011-08-16 19:03:09 +00:00
Greg Clayton
72da397a69
Fixed an issue where we could end up creating multiple
...
C++ methods for a function depending on how the DWARF was
created. Now we parse the class type from the definition,
and all methods that use DW_AT_specification or DW_AT_abstract_origin
attributes to point to the definition, now won't create
duplicate entries. This is in response to how clang++ creates
much different DWARF than gcc.
llvm-svn: 137737
2011-08-16 18:40:23 +00:00
Jim Grosbach
acb07b599c
Update createMCAsmParser() to match r137735.
...
llvm-svn: 137736
2011-08-16 18:33:55 +00:00
Jim Grosbach
345768c9ff
Remove unused Target argument from AsmParser construction methods.
...
The argument is unused, and is a layering violation in any case.
llvm-svn: 137735
2011-08-16 18:33:49 +00:00
Jim Grosbach
24613e031a
Remove unused forward declaration.
...
llvm-svn: 137734
2011-08-16 18:31:36 +00:00
Bruno Cardoso Lopes
2e99f1b3aa
Instead of always leaving the work to the generic legalizer when
...
there is no support for native 256-bit shuffles, be more smart in some
cases, for example, when you can extract specific 128-bit parts and use
regular 128-bit shuffles for them. Example:
For this shuffle:
shufflevector <4 x i64> %a, <4 x i64> %b, <4 x i32>
<i32 1, i32 0, i32 7, i32 6>
This was expanded to:
vextractf128 $1, %ymm1, %xmm2
vpextrq $0, %xmm2, %rax
vmovd %rax, %xmm1
vpextrq $1, %xmm2, %rax
vmovd %rax, %xmm2
vpunpcklqdq %xmm1, %xmm2, %xmm1
vpextrq $0, %xmm0, %rax
vmovd %rax, %xmm2
vpextrq $1, %xmm0, %rax
vmovd %rax, %xmm0
vpunpcklqdq %xmm2, %xmm0, %xmm0
vinsertf128 $1, %xmm1, %ymm0, %ymm0
ret
Now we get:
vshufpd $1, %xmm0, %xmm0, %xmm0
vextractf128 $1, %ymm1, %xmm1
vshufpd $1, %xmm1, %xmm1, %xmm1
vinsertf128 $1, %xmm1, %ymm0, %ymm0
llvm-svn: 137733
2011-08-16 18:21:54 +00:00
Greg Clayton
cbc9eb45ab
Fixed the logging output that appears when doing a:
...
(lldb) target modules dump symfile
llvm-svn: 137732
2011-08-16 18:19:31 +00:00
Sean Callanan
efe9a42379
Fixed a performance problem where functions were
...
being searched for in too heavyweight a way. Now,
when asking for the address of a function, the
expression parser just asks for a corresponding
data symbol.
llvm-svn: 137731
2011-08-16 18:09:29 +00:00