- Jun 01, 2008
-
-
Eli Friedman authored
llvm-svn: 51838
-
Eli Friedman authored
llvm-svn: 51837
-
Anton Korobeynikov authored
llvm-svn: 51836
-
Anton Korobeynikov authored
Implemented by David Chisnall! llvm-svn: 51835
-
- May 31, 2008
-
-
Eli Friedman authored
llvm-svn: 51826
-
- May 30, 2008
-
-
Eli Friedman authored
types so that they end up the correct size. llvm-svn: 51787
-
Eli Friedman authored
this does is reconstruct the type for structs and arrays if the type wouldn't be compatible otherwise. The assertion about packing in the struct type reconstruction code sucks, but I don't see any obvious way to fix it. Maybe we need a general utility method to take a list of types and alignments and try to construct an unpacked type if possible? llvm-svn: 51785
-
Eli Friedman authored
associated declaration. This is a prerequisite to handling general union initializations; for example, an array of unions involving pointers has to be turned into a struct because the elements can have incompatible types. I refactored the code a bit to make it more readable; now, the logic for definitions is all in EmitGlobalVarInit. The second parameter for GetAddrOfGlobalVar is now dead; I'll remove it separately. By itself, this patch should not cause any visible changes. llvm-svn: 51783
-
Eli Friedman authored
of elements. llvm-svn: 51769
-
Eli Friedman authored
This fixes a crash on the included testcase (found in NetHack). llvm-svn: 51767
-
Sanjiv Gupta authored
llvm-svn: 51765
-
Eli Friedman authored
llvm-svn: 51764
-
Eli Friedman authored
bit-field initialization; ugly code, X86-only, but it works, at least for basic stuff. Separates/adds union initialization; currently disabled, though, because the struct/array code needs modifications to support elements of the wrong type. Fixes PR2381 and PR2309 with the bit-field initialization. And NetHack compiles and appears to work with a few tweaks (to work around the lack of transparent_union support, and clang being a bit strict about conflicting declarations). llvm-svn: 51763
-
- May 29, 2008
-
-
Steve Naroff authored
- #include ExprObjC.h in many places llvm-svn: 51703
-
Eli Friedman authored
constant expressions. llvm-svn: 51682
-
Eli Friedman authored
unsigned because it's possible (at least in theory) to have have both positive and negative pointers pointing to the same object. llvm-svn: 51681
-
Eli Friedman authored
in unions (we don't want to do the union-specific bitcast for bit-fields). llvm-svn: 51678
-
Eli Friedman authored
expressions. llvm-svn: 51677
-
Eli Friedman authored
alignment and alignment attributes. llvm-svn: 51676
-
Eli Friedman authored
emit incomplete types, because they crash llc, and always use the logical location as the current location so we don't crash doing invalid queries on CurLoc. llvm-svn: 51675
-
Eli Friedman authored
This change makes clang generate the same thing as llvm-gcc. llvm-svn: 51674
-
Eli Friedman authored
nothing fundamentally wrong with it. Emitting unpacked structs where possible is more work for almost no practical benefit. We'll probably want to fix it at some point anyway, but it's low priority. The issue with long double in particular is that LLVM thinks an X86 long double is 10 bytes, while clang considers it for all purposes to be either 12 or 16 bytes, depending on the platform, even in a packed struct. llvm-svn: 51673
-
- May 28, 2008
-
-
Devang Patel authored
llvm-svn: 51619
-
- May 27, 2008
-
-
Eli Friedman authored
llvm-svn: 51596
-
Eli Friedman authored
llvm-svn: 51595
-
Eli Friedman authored
llvm-svn: 51587
-
Eli Friedman authored
been used. In preparation for the fix to PR2360, but also a minor bug in its own right. llvm-svn: 51583
-
Eli Friedman authored
llvm-svn: 51579
-
Eli Friedman authored
codegen of X86 long double. llvm-svn: 51578
-
Eli Friedman authored
a few bugs, but I don't know of any in particular. This has good effects besides cleanup, though: it also should make it easier to implement the aligned and packed attributes, and also target-specific struct layouts, because the code won't have to be duplicated in codegen. llvm-svn: 51576
-
- May 26, 2008
-
-
Eli Friedman authored
required for correctness in cases of copying a struct to itself or to an overlapping struct (itself for cases like *a = *a, and overlapping is possible with unions). Hopefully, this won't end up being a perf issue; LLVM *should* be able to optimize memmove to memcpy in a lot of cases, and for small copies the generated code *should* be mostly comparable. (In reality, LLVM is currently horrible at optimizing memmove, but that's a bug, not a fundamental issue.) gcc currently generates wrong code; that's http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32667. llvm-svn: 51566
-
- May 25, 2008
-
-
Eli Friedman authored
someone tries to make a bitfield volatile?). Not sure how to write a test; any suggestions? llvm-svn: 51558
-
Sanjiv Gupta authored
Also take care of freeing memory at the right places. llvm-svn: 51553
-
- May 23, 2008
-
-
Dan Gohman authored
llvm::Type::isSingleValueType. Currently these two functions have the same behavior, but soon isFirstClassType will return true for struct and array types. Clang may some day want to use of isFirstClassType for some of these some day as an optimization, but it'll require some consideration. llvm-svn: 51446
-
- May 22, 2008
-
-
Eli Friedman authored
actually work (instead of crashing llc), and there's enough info emitted to get line number information in gdb. This should hopefully be helpful for debugging non-working programs. I got rid of the begin/endregion calls because the implementation wasn't working; someone who knows the debugging info a bit better might try to add it. I really have no clue how a compiler is supposed to emit them. This commit shouldn't have any effect without -g. llvm-svn: 51404
-
Eli Friedman authored
ret. llvm-svn: 51403
-
Eli Friedman authored
bit that wants to use CurFuncDecl as a FunctionDecl. llvm-svn: 51402
-
Dan Gohman authored
lib/CodeGen/CGExpr.cpp and to change include/clang/AST/Attr.h to use its own enum for visibility types instead of using llvm::GlobalValue::VisibilityTypes. These changes eliminate dependencies in the AST library on LLVM's VMCore library. llvm-svn: 51398
-
- May 21, 2008
-
-
Eli Friedman authored
changes in my tree, so I don't have a testcase which affects trunk. llvm-svn: 51371
-
- May 20, 2008
-
-
Eli Friedman authored
as far as I can tell, and it fixes code like test/CodeGen/functions.c. (Whatever performance effect it might have, crashing on a construct like this isn't really acceptable; I've run into this multiple times.) llvm-svn: 51312
-