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
Devang Patel
d3a6b0f184
Emit a stop point before a call expression so that debugger has some chance of getting some footing when user wants to stop at 2nd bar() in following expression when all function calls are inlined.
...
= bar() + ... + bar() + ...
clang keeps track of column numbers, so we could put location entries for all subexpressions but that will significantly bloat debug info in general, but a location for call expression is helpful here.
llvm-svn: 127018
2011-03-04 18:54:42 +00:00
John McCall
74186ab391
Access ivars with inbounds GEPs, even in -fwrapv. It's unlikely that
...
this can have any optimization effect, given the opacity of objects pointers,
but you never know.
llvm-svn: 126990
2011-03-04 08:25:59 +00:00
John McCall
6647584951
Let's do super message sends with static allocas instead of dynamic ones.
...
llvm-svn: 126989
2011-03-04 08:00:29 +00:00
John McCall
4223a9ee7a
Make AttributedTypes for GC-qualified types and fix some miscellaneous
...
bugs with such types. Not sure this is quite how I want the desugaring
and a.k.a. logic to go, but it suffices.
llvm-svn: 126986
2011-03-04 04:00:19 +00:00
Devang Patel
68a1525290
Encode argument numbering in debug info so that code generator can emit them in order.
...
This fixes few blocks.exp regressions.
llvm-svn: 126960
2011-03-03 20:13:15 +00:00
Dan Gohman
6ca9982757
Fix a typo.
...
llvm-svn: 126890
2011-03-02 22:39:34 +00:00
Tilmann Scheller
99cc30c371
Revert "Add CC_Win64ThisCall and set it in the necessary places."
...
This reverts commit 126863.
llvm-svn: 126886
2011-03-02 21:36:49 +00:00
Benjamin Kramer
0f074df979
Only emit string initializers in-place if types match. Fixes PR9373.
...
llvm-svn: 126883
2011-03-02 21:27:44 +00:00
Tilmann Scheller
e60baf731b
Revert "Add preliminary support for MSVC-style vtables."
...
This reverts commit 126865.
llvm-svn: 126876
2011-03-02 20:40:50 +00:00
Devang Patel
bd6f7f9770
revert r126858.
...
llvm-svn: 126874
2011-03-02 20:31:22 +00:00
Fariborz Jahanian
ff9890302c
IRGen. Fix IR when message returns reference type.
...
// rdar://8604515.
llvm-svn: 126869
2011-03-02 20:09:49 +00:00
Tilmann Scheller
a6c995dbb2
Add preliminary support for MSVC-style vtables.
...
llvm-svn: 126865
2011-03-02 19:38:28 +00:00
Tilmann Scheller
454464b491
Add CC_Win64ThisCall and set it in the necessary places.
...
llvm-svn: 126863
2011-03-02 19:36:23 +00:00
Devang Patel
31e5fb52d1
Encode argument numbering in debug info so that code generator can emit them in order.
...
This fixes few blocks.exp regressions.
Reapply r126795 with a fix (one character change) for gdb testsuite regressions.
llvm-svn: 126858
2011-03-02 19:11:22 +00:00
Devang Patel
a54696de8a
Revert r126794.
...
llvm-svn: 126848
2011-03-02 17:54:58 +00:00
John McCall
81a325e038
Hack in something so that we emit better debug information about
...
captured __block variables in the block-literal type.
llvm-svn: 126834
2011-03-02 06:57:14 +00:00
Eli Friedman
846ded2e53
PR9350: increment/decrement of char (and anything else narrower than int)
...
can't overflow due to promotion rules; emit a wrapping add for those cases.
llvm-svn: 126816
2011-03-02 01:49:12 +00:00
Devang Patel
3bc2dedb40
Encode argument numbering in debug info so that code generator can emit them in order.
...
This fixes few blocks.exp regressions.
llvm-svn: 126795
2011-03-01 22:59:40 +00:00
Fariborz Jahanian
cf7f66f16f
objc IRGen for Next runtime message API.
...
The prototype for objc_msgSend() is technically variadic -
`id objc_msgSend(id, SEL, ...)`.
But all method calls should use a prototype that matches the method,
not the prototype for objc_msgSend itself().
// rdar://9048030
llvm-svn: 126754
2011-03-01 17:28:13 +00:00
Chris Lattner
2e72da947c
-fwrapv should turn off the inbounds markers from geps used for pointer
...
arithmetic. This is part of PR9256, it would be great if someone else
wired up -fno-strict-overflow in the driver to -fwrapv.
llvm-svn: 126718
2011-03-01 00:03:48 +00:00
Devang Patel
bbe4ff99e0
Use single code path to handle c++ structs and classes while generating debug info.
...
llvm-svn: 126691
2011-02-28 22:32:45 +00:00
Fariborz Jahanian
557c1ed522
Revert r126678.
...
llvm-svn: 126685
2011-02-28 21:19:34 +00:00
Fariborz Jahanian
79246322a6
objc IRGen for Next runtime message API.
...
The prototype for objc_msgSend() is technically variadic -
`id objc_msgSend(id, SEL, ...)`.
But all method calls should use a prototype that matches the method,
not the prototype for objc_msgSend itself().
// rdar://9048030
llvm-svn: 126678
2011-02-28 19:55:59 +00:00
Chris Lattner
35d3ac5e9e
Make skipping of vardecls more precise: it's ok to skip a decl if the entire
...
compound stmt containing the decl is skipped.
llvm-svn: 126639
2011-02-28 07:22:44 +00:00
Chris Lattner
62208c395a
make switch constant folding a bit stronger, handling a missed case.
...
llvm-svn: 126638
2011-02-28 07:16:14 +00:00
Anders Carlsson
e96ab55b28
Add a -fcxx-exceptions flag to the frontend, which can be used to enable
...
C++ exceptions, even when exceptions have been turned off using -fno-exceptions.
Make the -fobjc-exceptions flag do the same thing, but for Objective-C exceptions.
C++ and Objective-C exceptions can also be disabled using -fno-cxx-excptions and
-fno-objc-exceptions.
llvm-svn: 126630
2011-02-28 02:27:16 +00:00
Chris Lattner
dc2cc67e57
remove a bogus assertion, add a comment.
...
llvm-svn: 126603
2011-02-28 01:06:02 +00:00
Chris Lattner
0709542628
make switch condition constant folding much more aggressive, handling
...
compound statements and break statements. This implements enough to
handle PR9322 and rdar://6970405.
llvm-svn: 126602
2011-02-28 01:02:29 +00:00