Douglas Gregor
d3f48bd3be
Introduce a new libclang function,
...
clang_getSpecializedCursorTemplate(), which determines the template
(or member thereof) that the given cursor specializes or from which it
was instantiated. This routine can be used to establish a link between
templates and their instantiations/specializations.
llvm-svn: 112780
2010-09-02 00:07:54 +00:00
Jim Grosbach
6f2067659d
trivial cleanup
...
llvm-svn: 112779
2010-09-02 00:02:26 +00:00
Zhanyong Wan
abb6d6d618
Make RecursiveASTVisitor not crash when a TemplateArgumentLoc object has a NULL TypeSourceInfo*. This fixes the symptom of http://llvm.org/PR8043 . Reviewed by csilvers.
...
llvm-svn: 112777
2010-09-01 23:54:22 +00:00
Bill Wendling
da08c3824b
Add some MMX builtins to correspond with the intrinsics now accepted by
...
LLVM. This will be used by the mmintrin.h header, but that bit still needs to be
worked out.
llvm-svn: 112776
2010-09-01 23:54:16 +00:00
Jim Grosbach
dffc9d328d
Simplify the tGPR register class now that the register allocators know not
...
to try to allocate reserved registers.
llvm-svn: 112774
2010-09-01 23:50:23 +00:00
Bob Wilson
38ab35a911
Remove NEON vmull, vmlal, and vmlsl intrinsics, replacing them with multiply,
...
add, and subtract operations with zero-extended or sign-extended vectors.
Update tests. Add auto-upgrade support for the old intrinsics.
llvm-svn: 112773
2010-09-01 23:50:19 +00:00
Ted Kremenek
f3a734d8ee
Add yet another test case for PR 8015, showing how reasoning over symbolic indices should exactly resolve over multiple index possibilities (and thus suppress the false positive in the test).
...
llvm-svn: 112770
2010-09-01 23:37:38 +00:00
Ted Kremenek
121ddd6a5c
Add another test case for PR 8015, here with the array index being within a valid range and not just a single constant.
...
llvm-svn: 112769
2010-09-01 23:37:36 +00:00
Dan Gohman
faa30f531a
Reword this comment. Don't mention outs(), as that's not what
...
this code is actually testing for.
llvm-svn: 112767
2010-09-01 23:33:02 +00:00
Ted Kremenek
0e12f9cc7b
Partial fix for PR 8015 (fix is actually by Jordy Rose, and I added a test case for follow-on work). This patch adds a bandaid for RegionStore's limited reasoning about symbolic array values.
...
llvm-svn: 112766
2010-09-01 23:27:26 +00:00
Bob Wilson
1b87c9a646
Translate NEON vmull, vmlal, and vmlsl builtins to llvm multiply-add/sub
...
with zext/sext operations, instead of to llvm intrinsics. I have a plan to
avoid the clang builtins for these, but it is going to take a little longer
and I want to get the NEON intrinsics updated before the 2.8 release.
llvm-svn: 112764
2010-09-01 23:20:27 +00:00
Chris Lattner
8af45a889d
deepen my MMX/SRoA hack to avoid hurting non-x86 codegen.
...
llvm-svn: 112763
2010-09-01 23:09:27 +00:00
Craig Silverstein
50391ba195
Update the docstring to say FriendTemplateDecl is not actually used.
...
Based on discussion with rjmccall and dgregor.
llvm-svn: 112762
2010-09-01 23:07:49 +00:00
Ted Kremenek
d588e78b95
Don't assert in the analyzer when analyze code does a byte load from a function's address. Fixes PR 8052.
...
llvm-svn: 112761
2010-09-01 23:00:46 +00:00
Bruno Cardoso Lopes
04c25c15c7
Revert r112689, avoid those kind of checks cause they mess up with mmx
...
llvm-svn: 112760
2010-09-01 22:59:03 +00:00
Craig Silverstein
0eaac04e47
Make some docstring clarifications, after discussion with dgregor.
...
llvm-svn: 112759
2010-09-01 22:55:38 +00:00
Jim Grosbach
63a8eaf559
Tweak to ignoring reserved regs. The allocator was occasionally still looking
...
at them since they'd end up in the register weights list. Tell it to stop
doing that.
llvm-svn: 112756
2010-09-01 22:48:34 +00:00
Dale Johannesen
092d3467bc
Recommit with changes. Comment out palignr for the
...
moment, as there's a testcase that uses it and expects it
to be subject to optimizations; we won't be doing that.
Some adjustments based on feedback from Bill.
llvm-svn: 112754
2010-09-01 22:43:48 +00:00
Bruno Cardoso Lopes
fea81b4831
Using target specific nodes for shuffle nodes makes the mask
...
check more strict, breaking some cases not checked in the
testsuite, but also exposes some foldings not done before,
as this example:
movaps (%rdi), %xmm0
movaps (%rax), %xmm1
movaps %xmm0, %xmm2
movss %xmm1, %xmm2
shufps $36, %xmm2, %xmm0
now is generated as:
movaps (%rdi), %xmm0
movaps %xmm0, %xmm1
movlps (%rax), %xmm1
shufps $36, %xmm1, %xmm0
llvm-svn: 112753
2010-09-01 22:33:20 +00:00
Eric Christopher
fde5a3d494
Some basic store support.
...
llvm-svn: 112752
2010-09-01 22:16:27 +00:00
Jakob Stoklund Olesen
4b6fd48bba
Teach RemoveCopyByCommutingDef to check all aliases, not just subregisters.
...
This caused a miscompilation in WebKit where %RAX had conflicting defs when
RemoveCopyByCommutingDef was commuting a %EAX use.
llvm-svn: 112751
2010-09-01 22:15:35 +00:00
Johnny Chen
b92555c334
Fixed comment.
...
llvm-svn: 112750
2010-09-01 22:10:09 +00:00
Johnny Chen
13639089c6
Put the little dances done after SBTarget.LaunchProcess() into the base class.
...
llvm-svn: 112749
2010-09-01 22:08:51 +00:00
Dale Johannesen
78d95e0089
Apparently only Darwin passes long double misaligned. Compensate.
...
llvm-svn: 112748
2010-09-01 21:57:20 +00:00
Jim Grosbach
d5e72a1e84
tidy up trailing whitespace and an 80 column violation.
...
llvm-svn: 112746
2010-09-01 21:48:06 +00:00
Dan Gohman
0ad7d9c24e
Fix loop unswitching's assumption that a code path which either
...
infinite loops or exits will eventually exit. This fixes PR5373.
llvm-svn: 112745
2010-09-01 21:46:45 +00:00
Dale Johannesen
a1a33fc252
Revert 112740, it broke some clang tests somehow...
...
llvm-svn: 112744
2010-09-01 21:36:44 +00:00
Jim Grosbach
9dce31438d
cleanup per feedback. use a helper function for getting the first non-reserved
...
physical register in a register class. Make sure to assert if the register
class is empty.
llvm-svn: 112743
2010-09-01 21:34:41 +00:00
Jim Grosbach
b070ddf6b4
The register allocator shouldn't consider allocating reserved registers. PBQP version.
...
llvm-svn: 112742
2010-09-01 21:23:03 +00:00
Jim Grosbach
5ccf18c2fc
The register allocator shouldn't consider allocating reserved registers.
...
r112728 did this for fast regalloc.
llvm-svn: 112741
2010-09-01 21:04:27 +00:00
Dale Johannesen
973ddaa088
Add a few more missing MMX operations. This should be it.
...
llvm-svn: 112740
2010-09-01 21:03:03 +00:00
Douglas Gregor
be99693127
Fix the source-range information for an EnumConstantDecl; previously,
...
it did not include the initializer expression.
llvm-svn: 112739
2010-09-01 20:41:53 +00:00
Ted Kremenek
026cb58a44
Don't assert in CastSizeChecker when the casted-to pointee is an incomplete type. Fixes PR 8050.
...
llvm-svn: 112738
2010-09-01 20:35:38 +00:00
Howard Hinnant
1f7ae51ef2
Updated for weekly test results.
...
llvm-svn: 112737
2010-09-01 20:33:41 +00:00
Douglas Gregor
982152433b
Test visiting the template parameters of template template parameters,
...
support for which came in with the last commit.
llvm-svn: 112735
2010-09-01 20:21:58 +00:00
Douglas Gregor
06c7d2df9b
Teach libclang to visit the default arguments of template parameters.
...
llvm-svn: 112734
2010-09-01 20:16:53 +00:00
Chris Lattner
44ab470c8e
update the tutorial to use CreateFAdd to create fp operations.
...
llvm-svn: 112733
2010-09-01 20:09:20 +00:00
Johnny Chen
cbb4be0c93
Changed the test case class names to be noun-like instead of verb-like.
...
llvm-svn: 112732
2010-09-01 19:59:58 +00:00
Jim Ingham
91b9383b76
Stream::Printf doesn't add a newline, so it needs to be added to all the error messages in CommandObjectExpression::EvaluateExpression.
...
llvm-svn: 112731
2010-09-01 19:53:33 +00:00
Douglas Gregor
a9aa29cf0b
Implement libclang support for using declarations. Clang actually uses
...
three different kinds of AST nodes to represent using declarations:
UsingDecl, UnresolvedUsingValueDecl, and
UnresolvedUsingTypenameDecl. These three are collapsed into a single
cursor kind for using declarations, since libclang clients don't need
the distinction.
Several related changes here:
- Cursor visitation of the three AST nodes for using declarations
- Proper source-range computation for these AST nodes
- Using declarations have no USRs, since they don't actually declare
any entities.
llvm-svn: 112730
2010-09-01 19:52:22 +00:00
Fariborz Jahanian
61a312413c
Fix IRGen when property-dot syntax used to access
...
a c++ class object 'ivar'. Fixes radar 8366604.
llvm-svn: 112729
2010-09-01 19:36:41 +00:00
Jim Grosbach
df6b67bf85
The register allocator shouldn't consider allocating reserved registers.
...
llvm-svn: 112728
2010-09-01 19:28:41 +00:00
Owen Anderson
5925053b32
Disable CorrelatedValuePropagation while I track down selfhost failures.
...
llvm-svn: 112727
2010-09-01 19:20:46 +00:00
Jim Grosbach
cb2e56fa82
tidy up a few 80-column and trailing whitespace bits.
...
llvm-svn: 112726
2010-09-01 19:16:29 +00:00
Sean Callanan
63c2f65ffc
Fixed a comment.
...
llvm-svn: 112725
2010-09-01 19:04:01 +00:00
Bill Wendling
6456efaffd
The output of opt -stats must be sent to stderr. Patch by NAKAMURA Takumi!
...
llvm-svn: 112724
2010-09-01 18:32:56 +00:00
Owen Anderson
c637c49c11
Tentatively add correlated value propagation to the set of standard passes.
...
llvm-svn: 112723
2010-09-01 18:30:15 +00:00
Owen Anderson
73f988cafa
JumpThreading keeps LazyValueInfo up to date, so we don't need to rerun it
...
if we schedule another LVI-using pass afterwards.
llvm-svn: 112722
2010-09-01 18:27:22 +00:00
Eric Christopher
3ce9c4a65f
Add some more load types in.
...
llvm-svn: 112721
2010-09-01 18:01:32 +00:00
Douglas Gregor
9dc243c3eb
Improve libclang indexing support for class template specializations
...
in a few related ways:
- Don't recurse into instantiations of templates.
- Recurse into explicit specializations.
- Visit the template arguments of an explicit specialization or
explicit instantiation.
- Include template specialization arguments in the USRs for class
template specializations.
llvm-svn: 112720
2010-09-01 17:32:36 +00:00