Commit Graph

10982 Commits

Author SHA1 Message Date
Chris Lattner 832323ea41 simplify management of llvm::Function creation to all go through
GetAddrOfFunction.  This is simpler and more efficient.

llvm-svn: 67444
2009-03-21 08:53:37 +00:00
Chris Lattner 5eaee5692c code cleanups, rename EmitForwardFunctionDefinition ->
CreateFunctionPrototypeIR, though my next patch will eliminate
it entirely.

llvm-svn: 67443
2009-03-21 08:38:50 +00:00
Chris Lattner 6574906818 fix several problems with asm renaming, by pulling it into the mangling code:
1. it wasn't applying to definitions, only declarations, e.g. int x __asm("foo")
2. multiple definitions were conflicting, they weren't getting merged.
3. the code was duplicated in several places.

llvm-svn: 67442
2009-03-21 08:24:40 +00:00
Chris Lattner 64c55933ed add some fixmes
llvm-svn: 67441
2009-03-21 08:13:05 +00:00
Chris Lattner a9cb6261bf reduce redundant calls of getMangledName.
llvm-svn: 67440
2009-03-21 08:06:59 +00:00
Chris Lattner 3bfce1887f simplify some more code.
llvm-svn: 67439
2009-03-21 08:03:33 +00:00
Chris Lattner 0c5e3132aa simplify and comment some code better. Make BindRuntimeGlobals
more optimistic that it will work (optimizing for the common case).

llvm-svn: 67438
2009-03-21 07:48:31 +00:00
Chris Lattner 3637652ab3 random code cleanups.
llvm-svn: 67437
2009-03-21 07:12:05 +00:00
Chris Lattner 6098e62d56 remove obviously dead code: you can't bitcast a pointer to "Ty" (a function type).
llvm-svn: 67436
2009-03-21 06:58:21 +00:00
Chris Lattner 9e8120e067 avoid making constant folding logic eliminate obviously dead bitcasts, speeding up PR3810
by ~2%.

llvm-svn: 67434
2009-03-21 06:53:34 +00:00
Chris Lattner 316e1c19df continue dancing around the obvious algorithm issues in PR3810:
This speeds up getAsIdentifierInfo from being a call to a function
with a big switch to a single testl instruction.  This speeds up
the example in PR3810 by 6.2%

llvm-svn: 67433
2009-03-21 06:49:19 +00:00
Chris Lattner 7d5608dd72 add an assertion for unreachable code.
llvm-svn: 67432
2009-03-21 06:40:50 +00:00
Chris Lattner 725a26b818 Add a fast path to CodeGenModule::getMangledName for almost all C functions,
speeding up the testcase in PR3810 by 60%.

llvm-svn: 67431
2009-03-21 06:31:09 +00:00
Chris Lattner c2d987425d partially inline getAttrs() to speed up PR3810 (and lots of
other code presumably) by 4.3%

llvm-svn: 67430
2009-03-21 06:27:31 +00:00
Chris Lattner cfbe9e746f simplify CXXNameMangler::mangle, making it exit earlier for C functions.
This speeds up a testcase in 3810 by ~16%.

llvm-svn: 67429
2009-03-21 06:19:20 +00:00
Daniel Dunbar 1acb0eb24f Driver: Give Compilation::Execute total control over the Driver result
code; and don't return an error code when -### is present, even if
errors occur.

llvm-svn: 67425
2009-03-21 00:40:53 +00:00
Ted Kremenek f97c47ca15 Add back warning about a PTH file not containing any identifiers, but don't make
it a hard error.

llvm-svn: 67424
2009-03-21 00:25:09 +00:00
Ted Kremenek b12f24116d Allow PTH files with no identifiers.
llvm-svn: 67423
2009-03-21 00:15:11 +00:00
Douglas Gregor 6d00c993f5 When building the structured initializer list, pre-allocate storage in
its vectors based on the subobject type we're initializing and the
(unstructured) initializer list. This eliminates some malloc thrashing
when parsing initializers (from 117 vector reallocations down to 0
when parsing Cocoa.h). We can't always pre-allocate the right amount
of storage, since designated initializers can cause us to initialize
in non-predictable patterns.

llvm-svn: 67421
2009-03-20 23:58:33 +00:00
Daniel Dunbar a792bad824 ccc/Driver/clang-fe: Accept -fbuiltin, and forward -f[no-]builtin to clang.
llvm-svn: 67420
2009-03-20 23:49:28 +00:00
Ted Kremenek 8b2c1cd5a2 Fix include-pth.c test case to (hopefully) more resilient to where and how tests
are executed.

llvm-svn: 67419
2009-03-20 23:45:36 +00:00
Daniel Dunbar ea9f032613 ccc/Driver: .s defaults to 'assembler-with-cpp' on Darwin.
- <rdar://problem/6669441> ccc doesn't handle assembler-with-cpp
   semantics correctly (but clang supports it)

 - This is sad, because it requires a fairly useless target
   hook. C'est la vie.

llvm-svn: 67418
2009-03-20 23:39:23 +00:00
Douglas Gregor 52a47e9c7b Destroy expressions properly when resizing an initializer list
llvm-svn: 67417
2009-03-20 23:38:03 +00:00
Douglas Gregor 85992cf607 InitListDesignations hasn't been used (ever). Eliminate it, and
simplify the parsing and action interface for designated
initializers.

llvm-svn: 67415
2009-03-20 23:11:49 +00:00
Douglas Gregor da17bd34e7 Eliminate post-diagnostic hooks. Instead, implement a Sema-specific
variant of DiagnosticBuilder that emits the template instantiation
backtrace when needed.

llvm-svn: 67413
2009-03-20 22:48:49 +00:00
Daniel Dunbar 9b726f88a2 ccc: Use -include-pth.
llvm-svn: 67410
2009-03-20 22:13:54 +00:00
Mike Stump 692c6e3729 Fix codegen for support for super inside block literal expressions.
llvm-svn: 67406
2009-03-20 21:53:12 +00:00
Ted Kremenek dfd72c2b44 Fix <rdar://problem/6704086> by allowing the format string checking in Sema to
allow non-literal format strings that are variables that (a) permanently bind to
a string constant and (b) whose string constants are resolvable within the same
translation unit.

llvm-svn: 67404
2009-03-20 21:35:28 +00:00
Chris Lattner b45c23a051 fix test/Preprocessor/macro_paste_mscomment.c.
llvm-svn: 67403
2009-03-20 21:23:42 +00:00
Fariborz Jahanian 07038f9785 Fix a crash during meta-data generation of objc2's nonfragile abi.
llvm-svn: 67402
2009-03-20 20:48:19 +00:00
Douglas Gregor 8ccff03701 Improve documentation for MemberExpr
llvm-svn: 67401
2009-03-20 20:46:52 +00:00
Douglas Gregor 2460c0c37c Link from the C++ status page to the open projects page
llvm-svn: 67399
2009-03-20 20:39:57 +00:00
Douglas Gregor 7262d1c003 Document some small- to mid-size open C++ projects
llvm-svn: 67398
2009-03-20 20:37:36 +00:00
Douglas Gregor 63b4ff6aad Some minor tweaks and additional tests for rvalue references
llvm-svn: 67397
2009-03-20 20:21:37 +00:00
Chris Lattner 1d1d80e5f9 rename the <predefines> buffer to <built-in> to solve PR3849.
Add a #include directive around the command line buffer so that
diagnostics generated from -include directives get diagnostics
like:

In file included from <built-in>:98:
In file included from <command line>:3:
./t.h:2:1: warning: type specifier missing, defaults to 'int'
b;
^

llvm-svn: 67396
2009-03-20 20:16:10 +00:00
Ted Kremenek 6b31533ad1 GRExprEngine:
- Conjure symbols at '--' and '++' unary operations
- Add utility method SVal::GetConjuredSymbolVal() and constify some arguments
  along the way.

llvm-svn: 67395
2009-03-20 20:10:45 +00:00
Ted Kremenek de9e968c5a Remove unneeded radar reference.
llvm-svn: 67394
2009-03-20 19:57:37 +00:00
Daniel Dunbar 60196720eb Driver: Switch to using -include-pth.
llvm-svn: 67393
2009-03-20 19:38:56 +00:00
Daniel Dunbar 9b2fdf05c0 Update test case.
llvm-svn: 67392
2009-03-20 19:34:03 +00:00
Fariborz Jahanian 391d4fc7f7 More super dot-syntax property implementation
when there is actually a property declaration
used in the dot-syntax.

llvm-svn: 67391
2009-03-20 19:18:21 +00:00
Ted Kremenek 9ffbe41a6c Fix <rdar://problem/6703892> by not warning about self-comparisons of enum
constants.

llvm-svn: 67390
2009-03-20 18:35:45 +00:00
Devang Patel 9f804934df Fix ivar's size encoding.
llvm-svn: 67389
2009-03-20 18:24:39 +00:00
Daniel Dunbar 7f2600244c Driver: Parse Darwin version out of target triple.
llvm-svn: 67388
2009-03-20 18:21:51 +00:00
Ted Kremenek 4ed32352c9 Add test case for '-include-pth'.
llvm-svn: 67386
2009-03-20 17:56:12 +00:00
Ted Kremenek 80e239abc0 PTHManager::Create() now creates a PTHManager even if the PTH file contains no
cached tokens. This is for use with -include-pth.

llvm-svn: 67385
2009-03-20 17:54:25 +00:00
Ted Kremenek 8c3f0047b4 retain/release checker: Tracking autorelease counts for objects. We're still not
completely there with accurately modeling autorelease pools.

llvm-svn: 67384
2009-03-20 17:34:15 +00:00
Ted Kremenek 1e9c10bba4 Allow profiling of "invalid" Symbols.
llvm-svn: 67383
2009-03-20 17:33:33 +00:00
Fariborz Jahanian 150abf2a00 Implement ir gen. for setter/getter applied to 'super'
in a property dot-syntax notation.

llvm-svn: 67382
2009-03-20 17:22:23 +00:00
Chris Lattner 88c347443e add tests for the various .S bugs I fixed on wednesday.
llvm-svn: 67381
2009-03-20 16:28:22 +00:00
Chris Lattner c4867109f8 rename this test from .S to .c so that it gets run.
llvm-svn: 67380
2009-03-20 16:16:49 +00:00