Jim Grosbach
5c4e99fca6
Rough first pass at compare_and_swap atomic builtins for ARM mode. Work in progress.
...
llvm-svn: 91090
2009-12-11 01:42:04 +00:00
Eli Friedman
d0e6097bb0
Fix the handling of dependent enums per C++ DR 502.
...
llvm-svn: 91089
2009-12-11 01:34:50 +00:00
Anders Carlsson
c988201417
Use named flags in RTTIBuilder::BuildPointerType.
...
llvm-svn: 91088
2009-12-11 01:27:37 +00:00
Anders Carlsson
fb8d445090
Add qualifiers for calls to member functions in dependent bases.
...
llvm-svn: 91087
2009-12-11 01:04:42 +00:00
Anders Carlsson
0c6a7d8f42
When extending the lifetime of a temporary, make sure to emit a branch to the cleanup exit block. This fixes a broken module error in LLVMCConfigurationEmitter.cpp.
...
llvm-svn: 91086
2009-12-11 01:00:09 +00:00
Zhongxing Xu
1239de1592
Use 'class' instead of 'struct'.
...
llvm-svn: 91085
2009-12-11 00:55:44 +00:00
Anders Carlsson
afd1edb52e
When an exception needs to be freed by calling __cxa_exception_free, make sure to stash away the exception pointer somewhere.
...
This fixes an "Instruction does not dominate all uses!" verification error when compiling TableGen.
llvm-svn: 91084
2009-12-11 00:32:37 +00:00
Daniel Dunbar
ff141799fb
Remove this test for now, it is flaky.
...
llvm-svn: 91083
2009-12-11 00:27:30 +00:00
Daniel Dunbar
2f1a6c1104
FileManager: Do not cache failed stats, it is easy to construct common
...
inconsistent situations if we do, and they are not important for PCH performance
(which currently only needs the stats to construct the initial FileManager
entries).
- No test case, sorry, the machinations are too involved.
This occurs when, for example, the build makes a PCH file and has a header map
or a -I for a directory that does not yet exist. It is possible we will cache
the negative stat on that directory, and then in the build we will never find
header files inside that dir.
For PCH we don't need these stats anyway for performance, so this also makes PCH
files smaller w/ no loss. I hope to eventually eliminate the stat cache
entirely.
llvm-svn: 91082
2009-12-11 00:27:20 +00:00
Fariborz Jahanian
73fab4f3f4
Patch to fix a crash trying to access a category name in
...
objective-c++ mode and also removed dead-code in this area.
(fixes radar 7456710).
llvm-svn: 91081
2009-12-11 00:26:36 +00:00
Mike Stump
18f4196792
Testcase for recent checkin.
...
llvm-svn: 91080
2009-12-11 00:10:15 +00:00
Mike Stump
6da5d75449
Implement just a bit more of inline assembly.
...
llvm-svn: 91079
2009-12-11 00:04:56 +00:00
Mike Stump
37077bf651
Fix spacing.
...
llvm-svn: 91078
2009-12-11 00:02:10 +00:00
Devang Patel
2eec32d944
If VariableDIe is not created (may be because global was optimzed away) then do not try to use the variable die.
...
llvm-svn: 91077
2009-12-10 23:25:41 +00:00
Mike Stump
e1f6280093
Don't complain about falling off the end of a function with an asm
...
block, if the function is supposed to return a value as we don't know
exactly what the asm code does.
llvm-svn: 91073
2009-12-10 22:57:48 +00:00
Douglas Gregor
01ddf7a65f
clang_getCompletionChunkText() will treat optional strings as empty text blocks
...
llvm-svn: 91072
2009-12-10 22:46:19 +00:00
Eli Friedman
d70bbfd7d8
Support unary type traits in a scalar context. Not that I've actually seen
...
this construct, but might as well for completeness.
llvm-svn: 91071
2009-12-10 22:40:32 +00:00
Eli Friedman
ee275c82ff
Clean up enum constants so that they're finally sane. Fixes PR3173 and a
...
recently introduced crash.
llvm-svn: 91070
2009-12-10 22:29:29 +00:00
Anders Carlsson
781161dc55
Make sure that explicitly instantiated functions get the right linkage.
...
llvm-svn: 91069
2009-12-10 22:25:34 +00:00
Douglas Gregor
96156a46e0
Beef up Clang-on-LLVM testing a bit, by making LLVM-Syntax recursive
...
(since we now parse all of the headers appropriately) and teaching
LLVM-Code-Syntax about the extra paths needed to parse the backends.
llvm-svn: 91068
2009-12-10 22:08:55 +00:00
Benjamin Kramer
e9ff5fe2e6
Privatize class members.
...
llvm-svn: 91067
2009-12-10 21:50:21 +00:00
John McCall
7a2865a217
Actually try to trigger the last diagnostic in the declaration-collision test case.
...
Surprisingly, we *do* diagnose one of them. Since we don't really track scopes into
instantiation, this has to signal some kind of bug.
llvm-svn: 91063
2009-12-10 21:17:25 +00:00
Eric Christopher
4b91e0194b
Add a test for the fix in revision 91009.
...
llvm-svn: 91062
2009-12-10 21:11:40 +00:00
Evan Cheng
4986588ddb
It's not safe to coalesce a move where src and dst registers have different subregister indices. e.g.:
...
%reg16404:1<def> = MOV8rr %reg16412:2<kill>
llvm-svn: 91061
2009-12-10 20:59:45 +00:00
Fariborz Jahanian
f63a028756
No need to add -x objecitve-c++
...
llvm-svn: 91060
2009-12-10 20:57:43 +00:00
Fariborz Jahanian
798d2bd546
Add support for finding composite type of twp objective-c pointers
...
in objective-c++ mode.
llvm-svn: 91059
2009-12-10 20:46:08 +00:00
Douglas Gregor
9f8ca58e30
Remove a broken, unused header
...
llvm-svn: 91058
2009-12-10 19:52:22 +00:00
John McCall
e29c5cd239
Improve the diagnostic when a new declaration conflicts with a using shadow
...
declaration. Rename note_using_decl to note_using, which is possibly less confusing.
Add a test for non-class-scope using decl collisions and be sure to note the case
we can't diagnose yet.
llvm-svn: 91057
2009-12-10 19:51:03 +00:00
Fariborz Jahanian
a430f71406
Move composite type finding of two objective-c expressions
...
into its own helper method. No change in functionality.
llvm-svn: 91056
2009-12-10 19:47:41 +00:00
Devang Patel
2b75ed2c3d
Refactor code that finds context for a given die.
...
Create global variable DIEs after creating subprogram DIEs. This allows function level static variable's to find their context at the time of DIE creation.
llvm-svn: 91055
2009-12-10 19:14:49 +00:00
Jim Grosbach
fed78ccfb5
Add instruction encoding for DMB/DSB
...
llvm-svn: 91053
2009-12-10 18:35:32 +00:00
Douglas Gregor
5b747a169e
Implement C++ DR437, which involves exception-specifications that name
...
a type currently being defined, from Nicola Gigante!
llvm-svn: 91052
2009-12-10 18:13:52 +00:00
Devang Patel
b5b60ea4f9
Refactor.
...
llvm-svn: 91051
2009-12-10 18:05:33 +00:00
Douglas Gregor
51e77d5ab0
Move initialization via initializer list over to InitializationSequences.
...
llvm-svn: 91050
2009-12-10 17:56:55 +00:00
Jakob Stoklund Olesen
497161c40b
Also attempt trivial coalescing for live intervals that end in a copy.
...
The coalescer is supposed to clean these up, but when setting up parameters
for a function call, there may be copies to physregs. If the defining
instruction has been LICM'ed far away, the coalescer won't touch it.
The register allocation hint does not always work - when the register
allocator is backtracking, it clears the hints.
This patch is more conservative than r90502, and does not break
483.xalancbmk/i686. It still breaks the PowerPC bootstrap, so it is disabled
by default, and can be enabled with the -trivial-coalesce-ends option.
llvm-svn: 91049
2009-12-10 17:48:32 +00:00
Torok Edwin
12b8a63e13
Comparing std::string with NULL is a bad idea, so just check whether its empty.
...
This code was crashing always with oprofile enabled, since it tried to create a StringRef
out of NULL, which run strlen on NULL.
llvm-svn: 91046
2009-12-10 10:01:47 +00:00
John McCall
84d8767c15
Implement redeclaration checking and hiding semantics for using declarations. There
...
are a couple of O(n^2) operations in this, some analogous to the usual O(n^2)
redeclaration problem and some not. In particular, retroactively removing
shadow declarations when they're hidden by later decls is pretty unfortunate.
I'm not yet convinced it's worse than the alternative, though.
llvm-svn: 91045
2009-12-10 09:41:52 +00:00
Eli Friedman
e919e382a4
Fix for PR5515: allow "merging" array bounds both forwards and backwards.
...
llvm-svn: 91044
2009-12-10 08:54:47 +00:00
Eli Friedman
d011893e86
Test for r90950.
...
llvm-svn: 91043
2009-12-10 08:51:23 +00:00
Anders Carlsson
bf56946073
Mangle static variables inside Objective-C methods in Objective-C++. We currently mangle them the same way as gcc does.
...
llvm-svn: 91042
2009-12-10 03:14:39 +00:00
Eli Friedman
d5bc94e2eb
Get rid of static variable.
...
llvm-svn: 91041
2009-12-10 02:21:21 +00:00
Chris Lattner
3c674cf804
If we enter parens, colons can become un-sacred, allowing us to emit
...
a better diagnostic in the second example.
llvm-svn: 91040
2009-12-10 02:08:07 +00:00
Chris Lattner
244b96ba0a
fix a more evil case of : / :: confusion arising in ?:.
...
llvm-svn: 91039
2009-12-10 02:02:58 +00:00
Chris Lattner
17c3b1f278
fix incorrect parsing of bitfields pointed out by Doug. I chose
...
to use ColonProtectionRAIIObject in the C codepath even though it
won't matter for consistency.
llvm-svn: 91037
2009-12-10 01:59:24 +00:00
Anders Carlsson
fefc7b8e7b
Actually store the pointer into the global variable, spotted by Eli.
...
llvm-svn: 91036
2009-12-10 01:58:33 +00:00
Mike Stump
3c6a12ca65
Setup cleanup on eh edge out of the construction of the cleanup object
...
during throw to deallocate the exception object. WIP.
llvm-svn: 91035
2009-12-10 01:52:30 +00:00
Chris Lattner
399df12fb1
minimal fix for PR5743
...
llvm-svn: 91032
2009-12-10 01:38:15 +00:00
Anders Carlsson
a72ddd4609
Handle emitting static variables that have reference type.
...
llvm-svn: 91027
2009-12-10 01:05:11 +00:00
Anders Carlsson
364051c6a6
Separate generating code for static variables and global variables.
...
llvm-svn: 91026
2009-12-10 00:57:45 +00:00
Anders Carlsson
3c951d1ae0
Fix tabs.
...
llvm-svn: 91025
2009-12-10 00:57:18 +00:00