- Apr 19, 2010
-
-
Rafael Espindola authored
llvm-svn: 101787
-
Dan Gohman authored
llvm-svn: 101786
-
David Chisnall authored
llvm-svn: 101759
-
David Chisnall authored
llvm-svn: 101758
-
Rafael Espindola authored
If a method is virtual and the class key function is in another file, emit the method as available_externally. Fixes PR6747 llvm-svn: 101757
-
- Apr 18, 2010
-
-
Fariborz Jahanian authored
as they are accessible in static methods in a class local to the same function. Fixes PR6769. llvm-svn: 101756
-
Nuno Lopes authored
as a side-effect, remove two FIXMEs now fixed llvm-svn: 101726
-
Anders Carlsson authored
Simplify wide bit-field layout in CGRecordLayoutBuilder, and also fix a bug where assigning to a bit-field member would overwrite other parts of the struct. llvm-svn: 101681
-
- Apr 17, 2010
-
-
Anders Carlsson authored
llvm-svn: 101678
-
Anders Carlsson authored
llvm-svn: 101673
-
Anders Carlsson authored
llvm-svn: 101671
-
Anders Carlsson authored
llvm-svn: 101666
-
Chris Lattner authored
llvm-svn: 101660
-
Anders Carlsson authored
llvm-svn: 101643
-
Benjamin Kramer authored
Add raw_ostream operators to NamedDecl for convenience. Switch over all users of getNameAsString on a stream. The next step is to print the name directly into the stream, avoiding a temporary std::string copy. llvm-svn: 101632
-
Chris Lattner authored
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
-
Nuno Lopes authored
llvm-svn: 101568
-
- Apr 16, 2010
-
-
Chris Lattner authored
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
-
Nuno Lopes authored
merge also a few tests I had here for this feature, and FileCheck'ize one file llvm-svn: 101535
-
Anders Carlsson authored
Make CGRecordLayoutBuilder deal with wide bit-fields. Will land tests shortly (Daniel, please review). llvm-svn: 101472
-
Chris Lattner authored
llvm-svn: 101447
-
- Apr 15, 2010
-
-
Daniel Dunbar authored
IRgen: Change CGBitFieldInfo to take the AccessInfo as constructor arguments, it is now an immutable object. Also, add some checking of various invariants that should hold on the CGBitFieldInfo access. llvm-svn: 101345
-
Daniel Dunbar authored
llvm-svn: 101344
-
Daniel Dunbar authored
IRgen: (Reapply 101222, with fixes) Move EmitStoreThroughBitfieldLValue to use new CGBitfieldInfo::AccessInfo decomposition, instead of computing the access policy itself. - Sadly, this doesn't seem to give any .ll size win so far. It is possible to make this routine significantly smarter & avoid various shifting, masking, and zext/sext, but I'm not really convinced it is worth it. It is tricky, and this is really instcombine's job. - No intended functionality change; the test case is just to increase coverage & serves as a demo file, it worked before this commit. The new fixes from r101222 are: 1. The shift to the target position needs to occur after the value is extended to the correct size. This broke Clang bootstrap, among other things no doubt. 2. Swap the order of arguments to OR, to get a tad more constant folding. llvm-svn: 101339
-
Eric Christopher authored
Stop multiplying constant by 8 accordingly in the header and change intrinsic definition for what types we expect. Add to existing palignr test to check that we're emitting the correct things. llvm-svn: 101332
-
- Apr 14, 2010
-
-
Daniel Dunbar authored
IRgen record layout, which this code doesn't need to depend on. llvm-svn: 101257
-
Daniel Dunbar authored
Speculatively revert "IRgen: Move EmitStoreThroughBitfieldLValue to use new CGBitfieldInfo::AccessInfo decomposition, instead of computing the access policy itself.", I think it might be breaking bootstrap. llvm-svn: 101235
-
Daniel Dunbar authored
IRgen: Move EmitStoreThroughBitfieldLValue to use new CGBitfieldInfo::AccessInfo decomposition, instead of computing the access policy itself. - Sadly, this doesn't seem to give any .ll size win so far. It is possible to make this routine significantly smarter & avoid various shifting, masking, and zext/sext, but I'm not really convinced it is worth it. It is tricky, and this is really instcombine's job. - No intended functionality change; the test case is just to increase coverage & serves as a demo file, it worked before this commit. llvm-svn: 101222
-
Daniel Dunbar authored
llvm-svn: 101221
-
Chris Lattner authored
llvm-svn: 101215
-
Daniel Dunbar authored
IRgen: Move EmitLoadOfBitfieldLValue to use new CGBitfieldInfo::AccessInfo decomposition, instead of computing the access policy itself. - This lets the method focus slightly more on emitting clean IR to honor the policy which has been selected. On 403.gcc's combine.c, x86_64, -O0, this reduces the number of lines in the .ll file (~= # of instructions) by 2.5%. - No intended functionality change -- at -O3 this should produce equivalent if not identical output. On 403.gcc's combine.c, x86_64, -O3, this isn't quite true and some of the changes are regressions, but I'm not going to worry about that until we move to a new access policy. - There is still some room for improvement in the generated IR, in particular we can usually fold the sign-extension of the bit-field into one of the component access. See the FIXME. llvm-svn: 101192
-
- Apr 13, 2010
-
-
Daniel Dunbar authored
IRgen: Enhance CGBitFieldInfo with enough information to fully describe the "policy" with which a bit-field should be accessed. - For now, these policies are computed to match the current IRgen strategy, although the new information isn't being used yet (except in -fdump-record-layouts). - Design comments appreciated. llvm-svn: 101178
-
Fariborz Jahanian authored
llvm-svn: 101161
-
Fariborz Jahanian authored
property (atomic/nonatomic) is of aggregate type with gc'able member objects) (NeXT runtime). llvm-svn: 101156
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 101153
-
Chris Lattner authored
llvm-svn: 101152
-
Chris Lattner authored
llvm-svn: 101151
-
Fariborz Jahanian authored
atomicity of aggregate properties in setter/getter methods. wip. llvm-svn: 101107
-
Devang Patel authored
llvm-svn: 101100
-