| #
cf142165 |
| 07-Aug-2010 |
John McCall <[email protected]> |
Store inheritance paths after CastExprs instead of inside them. This takes some trickery since CastExpr has subclasses (and indeed, is abstract).
Also, smoosh the CastKind into the bitfield from Exp
Store inheritance paths after CastExprs instead of inside them. This takes some trickery since CastExpr has subclasses (and indeed, is abstract).
Also, smoosh the CastKind into the bitfield from Expr.
Drops two words of storage from Expr in the common case of expressions which don't need inheritance paths. Avoids a separate allocation and another word of overhead in cases needing inheritance paths. Also has the advantage of not leaking memory, since destructors for AST nodes are never run.
llvm-svn: 110507
show more ...
|
| #
3ee1022f |
| 17-Jul-2010 |
Eli Friedman <[email protected]> |
Fix crash initializing a bit-field with a non-constant in a place where we try to evaluate the initializer as a constant.
llvm-svn: 108632
|
| #
53b479ff |
| 05-Jul-2010 |
Chris Lattner <[email protected]> |
fix PR7564 a cast where the bitfield struct init code wasn't handling array padding elements right.
llvm-svn: 107621
|
| #
9a3459f1 |
| 05-Jul-2010 |
Chris Lattner <[email protected]> |
AppendBitField really can never fail, so return its return value. Everyone knows that no bugs are ever possible with bitfields.
llvm-svn: 107620
|
| #
fa20e950 |
| 26-Jun-2010 |
Chris Lattner <[email protected]> |
use more efficient type comparison predicates.
llvm-svn: 106958
|
| #
bcb2e4cb |
| 03-Jun-2010 |
Anders Carlsson <[email protected]> |
Don't try to explicitly zero out bit-fields.
llvm-svn: 105391
|
| #
c8731be3 |
| 30-May-2010 |
Eli Friedman <[email protected]> |
Fix for PR7040: Don't try to compute the LLVM type for a function where it isn't possible to compute.
This patch is mostly refactoring; the key change is the addition of the code starting with the c
Fix for PR7040: Don't try to compute the LLVM type for a function where it isn't possible to compute.
This patch is mostly refactoring; the key change is the addition of the code starting with the comment, "Check whether the function has a computable LLVM signature." The solution here is essentially the same as the way the vtable code handles such functions.
llvm-svn: 105151
show more ...
|
| #
da265b8d |
| 27-May-2010 |
Anders Carlsson <[email protected]> |
When null-initializing bases with data member pointers, don't assert on virtual bases. Just initialize them to null.
llvm-svn: 104868
|
| #
be48c548 |
| 18-May-2010 |
Anders Carlsson <[email protected]> |
Correctly initialize bases with member pointers. This should fix PR6441 but that test case is a bit weird and I'd like to investigate further before closing that bug.
llvm-svn: 104025
|
| #
1cf9274a |
| 14-May-2010 |
Anders Carlsson <[email protected]> |
Move ContainsPointerToDataMember to CodeGenTypes. No functionality change.
llvm-svn: 103792
|
| #
3572d441 |
| 03-May-2010 |
Anders Carlsson <[email protected]> |
When computing the address of a virtual member function pointer, use the pointer width instead of hardcoding for 64-bit.
llvm-svn: 102921
|
|
Revision tags: llvmorg-2.7.0 |
|
| #
795213ef |
| 24-Apr-2010 |
Anders Carlsson <[email protected]> |
Get rid of the old GetNonVirtualBaseClassOffset and change all call sites to use the new version.
llvm-svn: 102274
|
| #
247a138e |
| 18-Apr-2010 |
Nuno Lopes <[email protected]> |
recommit r101568 to fix PR6766 as a side-effect, remove two FIXMEs now fixed
llvm-svn: 101726
|
| #
11e5140d |
| 17-Apr-2010 |
Anders Carlsson <[email protected]> |
Vtable -> VTable renames across the board.
llvm-svn: 101666
|
| #
b714a4b4 |
| 17-Apr-2010 |
Chris Lattner <[email protected]> |
revert r101568, which miscompiles this testcase, distilled from ldecod:
void exit_picture() { char yuv_types[4][6]= {"4:0:0","4:2:0","4:2:2","4:4:4"}; foo(yuv_types); }
llvm-svn: 101623
|
| #
74b59525 |
| 16-Apr-2010 |
Nuno Lopes <[email protected]> |
fix PR6766: codegen of var initialized with wide char
llvm-svn: 101568
|
| #
3cff64ab |
| 16-Apr-2010 |
Chris Lattner <[email protected]> |
fix a bogus assertion exposed by a recent change: packing the struct may cause it to shrink more than one byte. Before my recent changes we compiled the new test into:
%0 = type { [6 x i8] } @x = g
fix a bogus assertion exposed by a recent change: packing the struct may cause it to shrink more than one byte. Before my recent changes we compiled the new test into:
%0 = type { [6 x i8] } @x = global %0 { [6 x i8] undef }, align 2 ; <%0*> [#uses=0]
which is obviously bogus. Now we compile it into:
%0 = type <{ i32, i8, i8 }> @x = global %0 zeroinitializer, align 2 ; <%0*> [#uses=0]
Where the last byte only is tail padding.
llvm-svn: 101536
show more ...
|
| #
5863c999 |
| 16-Apr-2010 |
Nuno Lopes <[email protected]> |
emit padding as undef values, take 2 merge also a few tests I had here for this feature, and FileCheck'ize one file
llvm-svn: 101535
|
| #
ff0e2a36 |
| 13-Apr-2010 |
Chris Lattner <[email protected]> |
Rework the ConstStructBuilder code to emit missing initializer elements with explicit zero values instead of with tail padding. On an example like this:
struct foo { int a; int b; };
struct foo foo
Rework the ConstStructBuilder code to emit missing initializer elements with explicit zero values instead of with tail padding. On an example like this:
struct foo { int a; int b; };
struct foo fooarray[] = { {1, 2}, {4}, };
We now lay this out as:
@fooarray = global [2 x %struct.foo] [%struct.foo { i32 1, i32 2 }, %struct.foo { i32 4, i32 0 }]
instead of as:
@fooarray = global %0 <{ %struct.foo { i32 1, i32 2 }, %1 { i32 4, [4 x i8] zeroinitializer } }>
Preserving both the struct type of the second element, but also the array type of the entire thing.
llvm-svn: 101155
show more ...
|
| #
cfa3e7ae |
| 13-Apr-2010 |
Chris Lattner <[email protected]> |
move a bunch of ConstStructBuilder methods out of line.
llvm-svn: 101152
|
| #
933f6788 |
| 12-Apr-2010 |
Chris Lattner <[email protected]> |
fix PR6660/6168: emit padding as zeros instead of undef. Because trailing fields may not be represented in initializer lists, they are being handled as padding and those fields *must* be zero init
fix PR6660/6168: emit padding as zeros instead of undef. Because trailing fields may not be represented in initializer lists, they are being handled as padding and those fields *must* be zero initialized.
llvm-svn: 101067
show more ...
|
| #
034299ef |
| 31-Mar-2010 |
Daniel Dunbar <[email protected]> |
IRGen: Move the auxiliary data structures tracking AST -> LLVM mappings out of CodeGenTypes, to per-record CGRecordLayout structures. - I did a cursory check that this was perf neutral, FWIW.
llvm-
IRGen: Move the auxiliary data structures tracking AST -> LLVM mappings out of CodeGenTypes, to per-record CGRecordLayout structures. - I did a cursory check that this was perf neutral, FWIW.
llvm-svn: 99978
show more ...
|
| #
072d0bb2 |
| 30-Mar-2010 |
Daniel Dunbar <[email protected]> |
IRgen: Move CGRecordLayout to its own happy little file.
llvm-svn: 99945
|
| #
a864caff |
| 23-Mar-2010 |
Anders Carlsson <[email protected]> |
Rename CGVtableInfo to CodeGenVTables in preparation of adding another VTableInfo class.
llvm-svn: 99250
|
| #
bef98689 |
| 04-Mar-2010 |
Rafael Espindola <[email protected]> |
really fix 6473 by handling weakref in constant expressions.
llvm-svn: 97750
|