Peter Collingbourne
7ce13fc940
OpenCL: add support for __kernel, kernel keywords and EXTENSION,
...
FP_CONTRACT pragmas. Patch originally by ARM.
llvm-svn: 125475
2011-02-14 01:42:53 +00:00
John McCall
8322c3a197
Give some convenient idiomatic accessors to Stmt::child_range and
...
Stmt::const_child_range, then make a bunch of places use them instead
of the individual iterator accessors.
llvm-svn: 125450
2011-02-13 04:07:26 +00:00
Daniel Dunbar
468a8f8756
IRgen: Fix an immediate-exit-from-fn style nit.
...
llvm-svn: 125289
2011-02-10 17:32:22 +00:00
Roman Divacky
178e0160b7
Implement mcount profiling, enabled via -pg.
...
llvm-svn: 125282
2011-02-10 16:52:03 +00:00
John McCall
ad7c5c1657
Reorganize CodeGen{Function,Module} to eliminate the unfortunate
...
Block{Function,Module} base class. Minor other refactorings.
Fixed a few address-space bugs while I was there.
llvm-svn: 125085
2011-02-08 08:22:06 +00:00
John McCall
2725aa13ea
Do the right thing for zero-initializing VLAs that don't have a zero
...
bit-pattern. It's not clear that this is actually useful given current
language restrictions.
llvm-svn: 124685
2011-02-01 21:35:06 +00:00
John McCall
ed1ae86ac6
Move all the cleanups framework code into a single file.
...
Pure motion.
llvm-svn: 124484
2011-01-28 11:13:47 +00:00
John McCall
ce1de6172c
Better framework for conditional cleanups; untested as yet.
...
I'm separately committing this because it incidentally changes some
block orderings and minor IR issues, like using a phi instead of
an unnecessary alloca.
llvm-svn: 124277
2011-01-26 04:00:11 +00:00
John McCall
a08ffd22d5
Support the zero-initialization of VLAs when that really means a zero
...
bit-pattern. Continue punting on zero-initializing VLAs with a nonzero
pattern.
llvm-svn: 123439
2011-01-14 10:37:58 +00:00
John McCall
5461a7523f
When simplifying a cleanup's entry by merging it into a single predecessor,
...
replace all uses of the entry with the predecessor. There are no cleanups
relying on this right now, but if we ever want a cleanup with a phi inside
it, this will be important.
llvm-svn: 123438
2011-01-14 10:35:38 +00:00
Benjamin Kramer
acc6b4e2fd
Simplify mem{cpy, move, set} creation with IRBuilder.
...
llvm-svn: 122634
2010-12-30 00:13:21 +00:00
John McCall
db40c7f573
Restore r121752 without modification.
...
llvm-svn: 121763
2010-12-14 08:05:40 +00:00
John McCall
5546da68bb
Pull out r121752 in case it's causing the selfhost breakage.
...
llvm-svn: 121759
2010-12-14 07:30:51 +00:00
John McCall
aa6d98c160
Factor out most of the extra state in a FunctionProtoType into a separate
...
class to be passed around. The line between argument and return types and
everything else is kindof vague, but I think it's justifiable.
llvm-svn: 121752
2010-12-14 06:51:39 +00:00
Abramo Bagnara
924a8f3573
Added ParenType type node.
...
llvm-svn: 121488
2010-12-10 16:29:40 +00:00
Dan Gohman
e9e32dcb48
Use CodeGenFunction's getContext(), for consistency.
...
llvm-svn: 117734
2010-10-29 22:47:07 +00:00
John McCall
a2fabff4f6
Permit constant evaluation of const floating-point variables with
...
constant initializers.
llvm-svn: 116138
2010-10-09 01:34:31 +00:00
Devang Patel
5b389f495b
Remove unused argument.
...
llvm-svn: 115789
2010-10-06 15:58:57 +00:00
John McCall
e5dd32da11
Teach PopCleanupBlock to correctly handle the possibility of branching through
...
a EH-only cleanup as part of a fallthrough branch-through. That this happens
for this test case is actually a separate bug.
llvm-svn: 115668
2010-10-05 20:48:15 +00:00
John McCall
0077b22aa4
If we're resolving all outstanding fixups, and there are multiple fixups
...
for the same destination, then we must potentially rewrite the initial branch
of every fixup. Without this patch, a short-circuit check meant to prevent
a switch case from being redundantly added was preventing later fixups from
being processed. Fixes PR8175 (again).
llvm-svn: 115586
2010-10-05 02:33:56 +00:00
Fariborz Jahanian
8fb87aec78
Patch implements passing arrays to functions expecting
...
vla. Implements pr7827.
llvm-svn: 114737
2010-09-24 17:30:16 +00:00
John McCall
f09d96f76d
Adjust a fixup's starting branch if it's being resolved because
...
it reached the outermost scope and it hasn't yet been forwarded
to a cleanup. Fixed PR8175.
llvm-svn: 114259
2010-09-18 02:24:39 +00:00
John McCall
7f9c92a9a0
When emitting a new-expression inside a conditional expression,
...
the cleanup might not be dominated by the allocation code.
In this case, we have to store aside all the delete arguments
in case we need them later. There's room for optimization here
in cases where we end up not actually needing the cleanup in
different branches (or being able to pop it after the
initialization code).
Also make sure we only call this operator delete along the path
where we actually allocated something.
Fixes rdar://problem/8439196.
llvm-svn: 114145
2010-09-17 00:50:28 +00:00
John McCall
824c2f537c
Implement the EH cleanup to call 'operator delete' if a new-expression throws
...
(but not if destructors associated with the full-expression throw).
llvm-svn: 113836
2010-09-14 07:57:04 +00:00
John McCall
5d865c3292
Teach IR generation to return 'this' from constructors and destructors
...
under the ARM ABI.
llvm-svn: 112588
2010-08-31 07:33:07 +00:00