- May 29, 2008
-
-
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
-
Eli Friedman authored
llvm-svn: 51309
-
Eli Friedman authored
llvm-svn: 51304
-
Eli Friedman authored
implement bitfield codegen (although I don't envy the person who implements it). This also prevents a crash on code like that from PR2309 (it's still broken, but it fails more gracefully). llvm-svn: 51285
-
Eli Friedman authored
llvm-svn: 51284
-
Eli Friedman authored
llvm-svn: 51282
-
- May 19, 2008
-
-
Eli Friedman authored
they were causing bad code to be emitted. There are two fixes here: one makes sure we emit a string that is long enough, and one makes sure we properly handle string initialization in init lists. llvm-svn: 51259
-
- May 17, 2008
-
-
Eli Friedman authored
used for _Bool is not the same as the primitive width (which for _Bool is 1 bit). The load and store changes add some casts to make the types consistent. The EmitLValue changes make sure that the pointer is of an appropriate type for loading the bitfield. This isn't perfect, but it's an improvement, and getting everything right depends on actually laying out structs in an ABI-compliant way. llvm-svn: 51224
-
- May 16, 2008
-
-
Eli Friedman authored
at the Sema layer. llvm-svn: 51203
-
Nate Begeman authored
llvm-svn: 51199
-
Eli Friedman authored
llvm-svn: 51193
-
- May 15, 2008
-
-
Nate Begeman authored
intrin.h files are finished llvm-svn: 51137
-
- May 14, 2008
-
-
Eli Friedman authored
expressing the full flexibility of the LLVM shufflevector instruction. The expected immediate usage is in *mmintrin.h, so that they don't depend on the mess of gcc-inherited (and not completely implemented) shuffle builtins. llvm-svn: 51113
-
Eli Friedman authored
llvm-svn: 51081
-
Eli Friedman authored
llvm-svn: 51080
-
- May 13, 2008
-
-
Nate Begeman authored
llvm-svn: 51068
-
Eli Friedman authored
llvm-svn: 51042
-
- May 12, 2008
-
-
Eli Friedman authored
llvm-svn: 50968
-
Eli Friedman authored
llvm-svn: 50966
-
- May 10, 2008
-
-
Mon P Wang authored
llvm-svn: 50919
-