David Chisnall
e1d2584d44
Fix Objective-C++ exceptions (GNU runtime).
...
llvm-svn: 127980
2011-03-20 21:35:39 +00:00
Anders Carlsson
6dc204de40
__cxa_atexit does not throw.
...
llvm-svn: 127977
2011-03-20 20:52:32 +00:00
Ken Dyck
6d470d9398
Use CharUnits's new increment operator. No change in functionality intended.
...
llvm-svn: 127938
2011-03-19 01:28:06 +00:00
Ken Dyck
0f2f30b241
Replace literal '8's with CharWidth in AppendBitField. No change in
...
functionality intended.
llvm-svn: 127927
2011-03-19 00:57:28 +00:00
Peter Collingbourne
599cb8e430
Add support for language-specific address spaces. On top of that,
...
add support for the OpenCL __private, __local, __constant and
__global address spaces, as well as the __read_only, _read_write and
__write_only image access specifiers. Patch originally by ARM;
language-specific address space support by myself.
llvm-svn: 127915
2011-03-18 22:38:29 +00:00
John McCall
7ef5cb3038
The Darwin kernel does not provide useful guard variable support.
...
Issue this as an IR-gen error; it's not really worthwhile doing this
"right", i.e. in Sema, because IR gen knows a lot of tricks beyond
what the constant evaluator knows.
llvm-svn: 127854
2011-03-18 02:56:14 +00:00
Ken Dyck
a1b35109cf
Convert alignment values to CharUnits. No change in functionality intended.
...
llvm-svn: 127848
2011-03-18 01:26:17 +00:00
Ken Dyck
33fa9ee4fd
Convert getSizeInBytes() to getSizeInChars(), which returns its result in
...
CharUnits. No change in functionality intended.
llvm-svn: 127846
2011-03-18 01:12:13 +00:00
Ken Dyck
4e54dcaca1
Convert variables to CharUnits in ConvertStructToPacked(). No change in
...
functionality intended.
llvm-svn: 127844
2011-03-18 00:55:06 +00:00
David Chisnall
a9e5460f03
Remove code that was intentionally generating bad code on the GNU runtime for no reason (failing to emit .cxx_constructor / .cxx_destructor methods).
...
llvm-svn: 127806
2011-03-17 14:19:08 +00:00
Ken Dyck
db205d1828
Convert NextOffsetInBytes to CharUnits and rename to NextOffsetInChars. No
...
change in functionality intended.
llvm-svn: 127787
2011-03-17 01:33:18 +00:00
Matt Beaumont-Gay
145e2eb0e3
Politely inform GCC that we will never fall off the end of that switch.
...
llvm-svn: 127783
2011-03-17 00:46:34 +00:00
Eli Friedman
b6069255da
PR9494: Get rid of bitcast which was both unnecessary and written incorrectly.
...
llvm-svn: 127768
2011-03-16 22:34:09 +00:00
David Chisnall
803adc1bcf
Fix foreign exception handling (GNU runtime).
...
llvm-svn: 127736
2011-03-16 15:44:28 +00:00
John McCall
e99e5dcbd3
Don't emit read barriers for reading __weak __block variables
...
in non-GC mode.
llvm-svn: 127725
2011-03-16 02:53:38 +00:00
John McCall
2de87f67e5
Reorganize the emission of (unfoldable) constant casts a bit, and
...
make sure that upcasts of member pointer types are covered as constants.
Fixed rdar://problem/9130221
llvm-svn: 127702
2011-03-15 21:17:48 +00:00
Sebastian Redl
0b94c9fb69
Reintroduce r127617: "Code generation for noexcept." with fixes.
...
llvm-svn: 127685
2011-03-15 18:42:48 +00:00
Ken Dyck
1c80fd1346
Introduce a CharUnits FieldOffsetInChars variable in AppendField() to
...
replace some uses of FieldOffsetInBytes. The remaining uses of
FieldOffsetInBytes will be replaced once NextFieldOffsetInBytes is converted
to CharUnits. No change in functionality intended.
llvm-svn: 127641
2011-03-15 01:09:02 +00:00
Jakob Stoklund Olesen
fcaa2e1ba4
Revert r127617: "Code generation for noexcept."
...
The tests fail in a -Asserts build.
llvm-svn: 127635
2011-03-15 00:18:21 +00:00
Rafael Espindola
0c1f098284
Switch from internal to linker_private linkage, it is sufficient to please the new linker.
...
llvm-svn: 127622
2011-03-14 21:08:19 +00:00
Sebastian Redl
97022fd325
Code generation for noexcept.
...
llvm-svn: 127617
2011-03-14 20:33:20 +00:00
Eric Christopher
cf5e83b471
__clear_cache() is varargs and people will occasionally write it without
...
arguments. Process only the arguments that people write, but process
all of them.
Fixes rdar://8900346
llvm-svn: 127616
2011-03-14 20:30:34 +00:00
Rafael Espindola
7a6cf01895
Fix link of libxul with LTO and the linker in xcode4. It is not clear if this
...
is working around a bug in ld or if the new linker has a reasonable reason
for wanting the string constant to be linker visible.
llvm-svn: 127594
2011-03-14 17:55:00 +00:00
David Chisnall
f836b5bc3f
Fix incorrect linkage specifiers for selectors.
...
llvm-svn: 127580
2011-03-14 15:01:16 +00:00
Sebastian Redl
31ad754c96
Instead of storing an ASTContext* in FunctionProtoTypes with computed noexcept specifiers, unique FunctionProtoTypes with a ContextualFoldingSet, as suggested by John McCall.
...
llvm-svn: 127568
2011-03-13 17:09:40 +00:00
Ken Dyck
a862d95054
Use CharUnits for argument passed to AppendPadding() from AppendBitField().
...
No change in functionality intended.
llvm-svn: 127538
2011-03-12 12:03:11 +00:00
Sebastian Redl
fa453cfdc3
Propagate the new exception information to FunctionProtoType.
...
Change the interface to expose the new information and deal with the enormous fallout.
Introduce the new ExceptionSpecificationType value EST_DynamicNone to more easily deal with empty throw specifications.
Update the tests for noexcept and fix the various bugs uncovered, such as lack of tentative parsing support.
llvm-svn: 127537
2011-03-12 11:50:43 +00:00
Ken Dyck
30a87e38d9
Change parameter to AppendPadding from bytes to CharUnits. No change in
...
functionality intended.
llvm-svn: 127513
2011-03-11 23:42:54 +00:00
John McCall
32ea969415
Use a slightly more semantic interface for emitting call arguments.
...
llvm-svn: 127494
2011-03-11 20:59:21 +00:00
Peter Collingbourne
e190dee7a5
Add support for the OpenCL vec_step operator, by generalising and
...
extending the existing support for sizeof and alignof. Original
patch by Guy Benyei.
llvm-svn: 127475
2011-03-11 19:24:49 +00:00
Ken Dyck
327b77a442
Convert the RecordSize parameter of AppendTailPadding() to CharUnits to
...
avoid converting to bits and back again. No change in functionality
intended.
llvm-svn: 127455
2011-03-11 02:17:05 +00:00
NAKAMURA Takumi
dd63436808
lib/CodeGen/CGCall.cpp: Don't invoke multiple Builder.CreateBitCast() on Builder.CreateMemCpy. Or we would see sideeffect incompatibility among gcc and clang.
...
llvm-svn: 127405
2011-03-10 14:02:21 +00:00
Abramo Bagnara
29c2d46786
Fixed InnerLocStart.
...
llvm-svn: 127330
2011-03-09 14:09:51 +00:00
John McCall
85915250c0
Remove a rather egregious use of getFunctionInfo.
...
llvm-svn: 127324
2011-03-09 08:39:33 +00:00
John McCall
46288eff24
Fix three of the four places where I left breadcrumbs to avoid unnecessary
...
recomputation.
llvm-svn: 127322
2011-03-09 08:12:35 +00:00
John McCall
5fe009660d
Tame this assert, hopefully fixing self-host.
...
llvm-svn: 127319
2011-03-09 07:12:35 +00:00
John McCall
a738c25f5e
Use the "undergoes default argument promotion" bit on parameters to
...
simplify the logic of initializing function parameters so that we don't need
both a variable declaration and a type in FunctionArgList. This also means
that we need to propagate the CGFunctionInfo down in a lot of places rather
than recalculating it from the FAL. There's more we can do to eliminate
redundancy here, and I've left FIXMEs behind to do it.
llvm-svn: 127314
2011-03-09 04:27:21 +00:00
John McCall
5c8f6c47c4
Emit block capture initializers as if they were normal initializers for a local
...
variable that just happens to be stored in a wierd place.
llvm-svn: 127235
2011-03-08 09:38:48 +00:00
John McCall
91ca10fe64
Extract a function to emit an arbitrary expression as if it were the initializer
...
for a local variable.
llvm-svn: 127227
2011-03-08 09:11:50 +00:00
Abramo Bagnara
dff1930bf7
Fixed source range for all DeclaratorDecl's.
...
llvm-svn: 127225
2011-03-08 08:55:46 +00:00
Bill Wendling
ec9d2633f1
When we adjust the inline ASM type, we need to take into account an early
...
clobber with the 'y' constraint. Otherwise, we get the wrong return type and an
assert, because it created a '<1 x i64>' vector type instead of the x86_mmx
type.
llvm-svn: 127185
2011-03-07 22:47:14 +00:00
Devang Patel
6e40c61596
CodeGenFunction::GenerateBlockFunction() should initialize DebugInfo just like CodeGenFunction::GenerateCode()
...
llvm-svn: 127174
2011-03-07 21:53:18 +00:00
Devang Patel
d6ffebb077
DebugInfo can be enabled or disabled at function level (e.g. using an attribute). However, at module level it is determined by command line option and the state of command line option does not change during compilation. Make this layering explicit and fix accidental cases where the code generator was checking whether module has debug info enabled instead of checking whether debug info is enabled for this function or not.
...
llvm-svn: 127165
2011-03-07 18:45:56 +00:00
Devang Patel
e65982c8c8
Do not emit stop point for CXXDefaultArgExpr. It results in suboptimial user experience.
...
21 int main() {
22 A a;
For example, here user would expect to stop at line 22, even if A's constructor leads to a call through CXXDefaultArgExpr.
This fixes ostream-defined.exp regression from gdb testsuite.
llvm-svn: 127164
2011-03-07 18:29:53 +00:00
John McCall
75f9498a7c
The conditional needs to be pushed before the branch. Make the test less
...
trivial to check this. Adjust for style.
llvm-svn: 127151
2011-03-07 03:12:35 +00:00
John McCall
f7dcf320a7
An operator new with an empty exception specifier returns null on a bad
...
allocation and therefore requires a null-check. We were doing that, but
we weren't treating the new-initializer as being conditionally executed,
which means it was possible to get ill-formed IR as in PR9298.
llvm-svn: 127147
2011-03-07 01:52:56 +00:00
Douglas Gregor
19da4e4397
Revert r126422 "Use private linkage to avoid symbol conflicts in
...
corner cases like the one in PR9301." which caused PR9416.
llvm-svn: 127136
2011-03-06 23:28:21 +00:00
Anders Carlsson
829c4134b8
Correctly unwrap 'auto' types. Fixes PR9414.
...
llvm-svn: 127121
2011-03-06 16:43:04 +00:00
Benjamin Kramer
0cd19fbfdf
StringRefify.
...
llvm-svn: 127082
2011-03-05 13:45:23 +00:00
Bill Wendling
6c9540e92b
Initialize variable.
...
llvm-svn: 127039
2011-03-04 21:46:03 +00:00