Commit Graph

76572 Commits

Author SHA1 Message Date
Mike Stump c18c403670 Improve unreachable code warnings for with respect to ? :.
llvm-svn: 94093
2010-01-21 19:44:04 +00:00
Victor Hernandez a9ad174b49 Don't need to include IntrinsicInst.h any more
llvm-svn: 94092
2010-01-21 19:33:59 +00:00
Victor Hernandez d089f4e10b No need to map NULL operands of metadata
llvm-svn: 94091
2010-01-21 19:26:20 +00:00
Ted Kremenek 819e873791 Allocate the 'Protocols' array in ObjCInterfaceType and
ObjCObjectPointerType using the allocator associated with ASTContext.
Not only does this fix a memory leak, but it also makes these arrays
BumpPtrAllocated (in the typical case).

llvm-svn: 94090
2010-01-21 19:22:34 +00:00
Benjamin Kramer 2067816b3a Revert r94073, it fails in Release-Asserts builds.
llvm-svn: 94089
2010-01-21 18:14:21 +00:00
Fariborz Jahanian e344e41fed Fixes a comment.
llvm-svn: 94088
2010-01-21 17:39:43 +00:00
Fariborz Jahanian da8ec2bc9e Patch to implement rewriting of properties.
Fixes radar 7562952.

llvm-svn: 94087
2010-01-21 17:36:00 +00:00
Mike Stump 14781509fd Improve unreachable code warnings for with respect to compound
assignments.

llvm-svn: 94086
2010-01-21 17:31:41 +00:00
Douglas Gregor d182431968 Teach the cursor visitor to walk into a variety of different TypeLoc
kinds, so that we see referenced types, protocols, classes, etc.

llvm-svn: 94085
2010-01-21 17:29:07 +00:00
Mike Stump cc3a853df7 Improve unreachable code warnings with respect to dead binary and
unary operators.

llvm-svn: 94084
2010-01-21 17:21:23 +00:00
Daniel Dunbar 9e406b4b60 Add a test for clang_rt support on Darwin. With appropriate massaging, this
checks that the runtime library can be linked and works for compiling on 10.6
for 10.{4,5,6} targets. Currently test is only for x86, and misses some
compiler-rt functions.

llvm-svn: 94083
2010-01-21 17:10:39 +00:00
Daniel Dunbar 0b9c603ee2 Tweak OptionalTests paths.
llvm-svn: 94082
2010-01-21 17:09:39 +00:00
Daniel Dunbar ae928714df Update to use llvm/utils/GetSourceVersion to detect version number, instead of
assuming SVN. This should be fixed to not necessarily be an integer.

llvm-svn: 94081
2010-01-21 16:56:47 +00:00
Daniel Dunbar d723b01311 Add utils/OptionalTests, a dumping ground for additional (lit) tests which for
one reason or another don't belong in the regular test suite.

Inside is utils/OptionalTests/Extra which is specifically for tests that match
the layout of the regular tests.

llvm-svn: 94080
2010-01-21 16:55:39 +00:00
Anders Carlsson f768db7775 Move the VTT related code into its own file, CGVTT.cpp
llvm-svn: 94079
2010-01-21 16:50:45 +00:00
Douglas Gregor 93f899509d Introduce type references into the C API, capturing references to
typedefs only (for now).

llvm-svn: 94078
2010-01-21 16:28:34 +00:00
Daniel Dunbar 87b8faf227 Add a simple script for getting a version tag from a svn/git-svn/git
repository. Feel free to add support for your favorite VCS.

llvm-svn: 94077
2010-01-21 16:09:59 +00:00
Douglas Gregor ff59f676d0 Teach code-completion to deal with calls to functions without prototypes.
llvm-svn: 94076
2010-01-21 15:46:19 +00:00
Benjamin Kramer 232085d50a struct/class mismatch.
llvm-svn: 94075
2010-01-21 15:40:14 +00:00
Mike Stump 04c6851cd6 Speed up compilation by avoiding generating exceptional edges from
CallExprs as those edges help cause a n^2 explosion in the number of
destructor calls.  Other consumers, such as static analysis, that
would like to have more a more complete CFG can select the inclusion
of those edges as CFG build time.

This also fixes up the two compilation users of CFGs to be tolerant of
having or not having those edges.  All catch code is assumed be to
live if we didn't generate the exceptional edges for CallExprs.

llvm-svn: 94074
2010-01-21 15:20:48 +00:00
Benjamin Kramer d2eba45be3 Match branch labels with the trailing colon so we don't accidentally match something else.
llvm-svn: 94073
2010-01-21 15:19:14 +00:00
Dan Gohman 9b85ae26b1 Make the parser include the lower level error message in its own error
message, to be more informative.

llvm-svn: 94072
2010-01-21 10:15:06 +00:00
Dan Gohman 7c6759094a Avoid printing a spurious semicolon when there is no filename.
llvm-svn: 94071
2010-01-21 10:13:27 +00:00
Dan Gohman 60a9bf414e When re-using an existing cast for a user, it's still necessary to call
rememberInstruction so that future users of that user will be inserted
in the correct position. This fixes the Darwin selfhost.

llvm-svn: 94070
2010-01-21 10:08:42 +00:00
Nick Lewycky 9e26c1cc0c Fix a crasher trying to fold each element in a comparison between two vectors
if one of the vectors didn't have elements (such as undef). Fixes PR 6096.

Fix an issue in the constant folder where fcmp (<2 x %ty>, <2 x %ty>) would
have <2 x i1> type if constant folding was successful and i1 type if it wasn't.
This exposed a related issue in the bitcode reader.

llvm-svn: 94069
2010-01-21 07:03:21 +00:00
Chris Lattner f2f73bf214 remove a couple of asserts that use RTTI.
llvm-svn: 94068
2010-01-21 06:11:03 +00:00
Mike Stump 0c2ec779cf Move some recent checking code into SemaChecking instead.
llvm-svn: 94067
2010-01-21 03:59:47 +00:00
Dan Gohman 55a365e797 Run the verifier after LSR, to help catch use-before-def errors before
they reach codegen.

llvm-svn: 94066
2010-01-21 03:51:36 +00:00
Mike Stump 87f2f9b465 Avoid instantiating std::sort to save on compiler size.
llvm-svn: 94065
2010-01-21 03:43:13 +00:00
Mike Stump 7df27e7038 When checking for unreachable code, we can trivially avoid checking
for unreachable loops if all the blocks are already marked live by
this point.

llvm-svn: 94064
2010-01-21 03:07:51 +00:00
Mike Stump 02230ab7a6 When checking for unreachable blocks, we can trivially avoid extra
work, if we know we already marked all blocks as live.

llvm-svn: 94063
2010-01-21 02:55:37 +00:00
Mike Stump 6bf1c08e99 Add infrastructure to add base initializers and member initializers to
the CFG.  WIP.

llvm-svn: 94062
2010-01-21 02:21:40 +00:00
Dan Gohman 51ad99d2c5 Re-implement the main strength-reduction portion of LoopStrengthReduction.
This new version is much more aggressive about doing "full" reduction in
cases where it reduces register pressure, and also more aggressive about
rewriting induction variables to count down (or up) to zero when doing so
reduces register pressure.

It currently uses fairly simplistic algorithms for finding reuse
opportunities, but it introduces a new framework allows it to combine
multiple strategies at once to form hybrid solutions, instead of doing
all full-reduction or all base+index.

llvm-svn: 94061
2010-01-21 02:09:26 +00:00
Chris Lattner 626aba43d0 eliminate dynamic_cast from the pass manager.
llvm-svn: 94060
2010-01-21 02:07:07 +00:00
Eric Christopher fa863258d0 Add strcpy_chk -> strcpy support for "don't know" object size
answers.  This will update as object size checking gets better information.

llvm-svn: 94059
2010-01-21 01:04:38 +00:00
Evan Cheng 5d30f7c91c Fix a minor issue in x86 load / store folding table. movups does an unaligned load so it doesn't require 16-byte alignment.
llvm-svn: 94058
2010-01-21 00:55:14 +00:00
Jim Grosbach e029a6a5ed Make sure that landing pad entries in the EH call site table are in the proper
order for SjLj style exception handling.

llvm-svn: 94055
2010-01-21 00:43:30 +00:00
Sean Callanan 7a77eae2f3 Moved handling of inclusion from the AsmLexer to
the AsmParser, breaking AsmLexer's dependence on
SourceMgr.

llvm-svn: 94054
2010-01-21 00:19:58 +00:00
Fariborz Jahanian 879cc735fc Fixes comments.
llvm-svn: 94053
2010-01-21 00:08:17 +00:00
Fariborz Jahanian e4951fdc4b Also allow cast of block pointer type to
pointer to an any object. Another variation of
radar 7562285.

llvm-svn: 94052
2010-01-21 00:05:09 +00:00
Douglas Gregor fed36b1aa1 Stash a CXXUnit pointer into each cursor. This allows us to simplify
the interface to clang_visitChildren() by eliminating the
CXTranslationUnit pointer.

llvm-svn: 94051
2010-01-20 23:57:43 +00:00
Devang Patel 3f4a77e082 A Decl->getName() is not unique. However, the debug info descriptors
are uniqued. The debug info descriptor describing record's context is
necessary to keep two Decl's descriptor unique if their name match.

There is more work to do to create descriptors for DeclContext. 
As a temp. step use type's name in FwdDecl.

llvm-svn: 94050
2010-01-20 23:56:40 +00:00
Douglas Gregor 58552bcd65 Eliminate the MakeCXCursor routines that require their callers to know too much about the cursor's storage
llvm-svn: 94049
2010-01-20 23:34:41 +00:00
Chris Lattner 3c5bf71353 simplify this code.
llvm-svn: 94048
2010-01-20 23:30:28 +00:00
Sean Callanan 177934e021 Changed the AsmParser to handle error messages itself
rather than passing them off to the AsmLexer to handle.
This means the AsmLexer no longer requires a SourceMgr
to do error handling.

llvm-svn: 94047
2010-01-20 23:19:55 +00:00
Jim Grosbach d7cf27a1d1 SjLj EH introduces can introduce an additional edge to a landing pad and pad
normalization needs to take this into account.

llvm-svn: 94046
2010-01-20 23:03:55 +00:00
Fariborz Jahanian 4efdec0677 In objective-c++ land, a block pointer is another object pointer.
So, casting a generic object pointer ('id' or 'Class') to the
block pointer is allowed. Fixes radar 7562285.

llvm-svn: 94045
2010-01-20 22:54:38 +00:00
Douglas Gregor c8e390c215 Yet more Doxygen-comment tweaking in the CIndex library.
llvm-svn: 94044
2010-01-20 22:45:41 +00:00
Sean Callanan 1a0eeb6e06 Promoted the reference to the SourceMgr from AsmLexer
into AsmParser, in preparation for making AsmLexer
independent of the SourceMgr

llvm-svn: 94043
2010-01-20 22:45:23 +00:00
Douglas Gregor 802f12f719 Improve Doxygen documentation for the CIndex library, somewhat.
llvm-svn: 94042
2010-01-20 22:28:27 +00:00