Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | More work on the constant struct builder. We can now convert the struct to a ↵ | Anders Carlsson | 2009-07-25 | 1 | -3/+40 | |
| | | | | | | packed struct when necessary. llvm-svn: 77038 | |||||
* | More work on the constant struct builder. We now try to layout all constant ↵ | Anders Carlsson | 2009-07-25 | 1 | -6/+19 | |
| | | | | | | structs but throw away the result. llvm-svn: 77021 | |||||
* | Update for LLVM API change. | Owen Anderson | 2009-07-24 | 16 | -201/+206 | |
| | | | | llvm-svn: 77012 | |||||
* | Fix a release build warning. | Anders Carlsson | 2009-07-24 | 1 | -1/+1 | |
| | | | | llvm-svn: 76985 | |||||
* | More work toward initialization of objects | Fariborz Jahanian | 2009-07-24 | 1 | -3/+12 | |
| | | | | | | in constructors. llvm-svn: 76980 | |||||
* | Don't use getLLVMFieldNo for bitfields when constructing the ivar layout ↵ | Anders Carlsson | 2009-07-24 | 1 | -4/+8 | |
| | | | | | | maps for GC. llvm-svn: 76978 | |||||
* | Check in a half finished new constant struct builder (Obviously not used yet). | Anders Carlsson | 2009-07-24 | 2 | -2/+148 | |
| | | | | llvm-svn: 76969 | |||||
* | Fix declaration of obc_enumerationMutation function, for GNU runtime. | Daniel Dunbar | 2009-07-24 | 2 | -8/+11 | |
| | | | | llvm-svn: 76959 | |||||
* | Get rid of the size parameter to AppendField. No functionality change. | Anders Carlsson | 2009-07-24 | 2 | -10/+8 | |
| | | | | llvm-svn: 76931 | |||||
* | Output UTF-16 string literals independent of host byte order. | Daniel Dunbar | 2009-07-23 | 1 | -9/+24 | |
| | | | | | | | | - Steve, can you take a look at this? It seems like this code should live elsewhere, and there is a FIXME about having Sema validates the UTF-8 to UTF-16 conversion. llvm-svn: 76915 | |||||
* | Factor out map lookup for CFString constants. | Daniel Dunbar | 2009-07-23 | 1 | -38/+53 | |
| | | | | llvm-svn: 76908 | |||||
* | Don't just store the field/bit field info one field, do it for all fields in ↵ | Anders Carlsson | 2009-07-23 | 1 | -12/+6 | |
| | | | | | | the union. llvm-svn: 76907 | |||||
* | Fix another thinko. | Anders Carlsson | 2009-07-23 | 1 | -2/+2 | |
| | | | | llvm-svn: 76903 | |||||
* | Correct a thinko in bitfield layout code. Fixes PR4611. | Anders Carlsson | 2009-07-23 | 1 | -4/+2 | |
| | | | | llvm-svn: 76898 | |||||
* | Simplify, NFC. | Daniel Dunbar | 2009-07-23 | 1 | -8/+7 | |
| | | | | llvm-svn: 76897 | |||||
* | Simplify. | Daniel Dunbar | 2009-07-23 | 1 | -5/+4 | |
| | | | | llvm-svn: 76885 | |||||
* | We don't need to keep track of the packed alignment, just whether the struct ↵ | Anders Carlsson | 2009-07-23 | 2 | -20/+13 | |
| | | | | | | is packed or not. Fixes PR4610. llvm-svn: 76884 | |||||
* | Move the LLVM field number for bit fields into the BitFieldInfo structure, ↵ | Anders Carlsson | 2009-07-23 | 6 | -41/+46 | |
| | | | | | | since it's meaning is completely different than for non-bit fields. llvm-svn: 76882 | |||||
* | Unbreak the CMake build | Douglas Gregor | 2009-07-23 | 1 | -0/+1 | |
| | | | | llvm-svn: 76878 | |||||
* | Shield clang from LLVM API changes, until the dust settles. | Daniel Dunbar | 2009-07-23 | 1 | -1/+3 | |
| | | | | llvm-svn: 76862 | |||||
* | Set field info for unions. | Anders Carlsson | 2009-07-23 | 1 | -1/+11 | |
| | | | | llvm-svn: 76856 | |||||
* | Use arrays as union padding. Also, since the resulting struct will always ↵ | Anders Carlsson | 2009-07-23 | 1 | -7/+10 | |
| | | | | | | contain a single element and either a single i8 element or an array of i8s, there's no reason to use a packed struct. llvm-svn: 76854 | |||||
* | Handle zero width bit fields in unions correctly (by ignoring them). | Anders Carlsson | 2009-07-23 | 1 | -0/+9 | |
| | | | | llvm-svn: 76847 | |||||
* | Implement union layout support. | Anders Carlsson | 2009-07-23 | 2 | -5/+48 | |
| | | | | llvm-svn: 76846 | |||||
* | Check in CGRecordLayoutBuilder which is a reimplementation of the record ↵ | Anders Carlsson | 2009-07-23 | 4 | -12/+423 | |
| | | | | | | layout code. (Yay, no more packed structs unless absolutely necessary). We currently don't use the layouts being built but that will change when the new code is mature enough :) llvm-svn: 76845 | |||||
* | These IRgen improvements have been done. | Daniel Dunbar | 2009-07-23 | 1 | -18/+0 | |
| | | | | | | | Technically we could still do a bit more to avoid deferred generation of statics which we know are used, but I seriously doubt this is important. llvm-svn: 76844 | |||||
* | Use DICompositeType->replaceAllUsesWith(). | Devang Patel | 2009-07-22 | 1 | -4/+3 | |
| | | | | | | This requires llvm rev. 76769 or higher. llvm-svn: 76770 | |||||
* | Fix a couple recent ABI regressions noticed during code review (fallout from ↵ | Steve Naroff | 2009-07-22 | 1 | -2/+2 | |
| | | | | | | | | the ObjC type system rewrite). It's unfortunate that the mangling includes the low-level structs. Nevertheless, we need this for binary compatibility with GCC. llvm-svn: 76755 | |||||
* | Make vectorized floating-point comparisons work without crashing. | Eli Friedman | 2009-07-22 | 1 | -1/+1 | |
| | | | | llvm-svn: 76726 | |||||
* | Preserve address space information through member accesses, e.g., | Mon P Wang | 2009-07-22 | 3 | -26/+57 | |
| | | | | | | | __attribute__((address_space(1))) struct {int arr[ 3 ]; } *p1; ... = p1->arr[2]; // load from address space 1 llvm-svn: 76717 | |||||
* | Update for LLVM API change. | Owen Anderson | 2009-07-21 | 3 | -10/+10 | |
| | | | | llvm-svn: 76599 | |||||
* | Update for LLVM API change. | Owen Anderson | 2009-07-21 | 1 | -3/+3 | |
| | | | | llvm-svn: 76534 | |||||
* | Move EmitCtorPrologue to CGCXX. Add an assert and FIXMEs. | Fariborz Jahanian | 2009-07-20 | 2 | -33/+33 | |
| | | | | llvm-svn: 76498 | |||||
* | Early ir-gen for constructor prologue. This is on going. | Fariborz Jahanian | 2009-07-20 | 2 | -0/+37 | |
| | | | | llvm-svn: 76493 | |||||
* | Remove an apparently unused header. | Mike Stump | 2009-07-20 | 1 | -1/+0 | |
| | | | | llvm-svn: 76473 | |||||
* | Catch another trivial case where we can avoid emitting a separate return blcok. | Daniel Dunbar | 2009-07-19 | 1 | -4/+5 | |
| | | | | llvm-svn: 76365 | |||||
* | Detect when the current generation point is unreachable after emitting | Daniel Dunbar | 2009-07-19 | 1 | -3/+12 | |
| | | | | | | | | | | expressions. - This generally catches the important case of noreturn functions. - With the last two changes, we are down to 152 unreachable blocks emitted on 403.gcc, vs the 1805 we started with. llvm-svn: 76364 | |||||
* | Fix thinko. | Daniel Dunbar | 2009-07-19 | 2 | -4/+8 | |
| | | | | llvm-svn: 76362 | |||||
* | Avoid generation of dead code in a few more situations. | Daniel Dunbar | 2009-07-19 | 4 | -15/+66 | |
| | | | | | | | | | | | | | - Emit variable declarations as "simple", we want to avoid forcing the creation of a dummy basic block, but still need to make the variable available for later use. - With that, we can now skip IRgen for other unreachable statements (which don't define a label). - Anders, I added two fixmes on calls to EmitVLASize, can you check them? llvm-svn: 76361 | |||||
* | Rename NextOffset to DataSize, which better matches the Itanium C++ ABI | Anders Carlsson | 2009-07-18 | 1 | -1/+1 | |
| | | | | llvm-svn: 76339 | |||||
* | Revert r75641. | Anders Carlsson | 2009-07-18 | 6 | -5/+6 | |
| | | | | llvm-svn: 76327 | |||||
* | Remove ObjCQualifiedInterfaceType:-) | Steve Naroff | 2009-07-18 | 2 | -7/+0 | |
| | | | | llvm-svn: 76321 | |||||
* | fix objc codegen to not have its own list of things that eventually get into ↵ | Chris Lattner | 2009-07-17 | 4 | -64/+33 | |
| | | | | | | | | llvm.used, just populate CGM's list directly. llvm-svn: 76266 | |||||
* | Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methods | Ted Kremenek | 2009-07-17 | 11 | -27/+27 | |
| | | | | | | | | | until Doug Gregor's Type smart pointer code lands (or more discussion occurs). These methods just call the new Type::getAs<XXX> methods, so we still have reduced implementation redundancy. Having explicit getAsXXXType() methods makes it easier to set breakpoints in the debugger. llvm-svn: 76193 | |||||
* | Replaced Type::getAsLValueReferenceType(), Type::getAsRValueReferenceType(), ↵ | Ted Kremenek | 2009-07-17 | 8 | -16/+16 | |
| | | | | | | Type::getAsMemberPointerType(), Type::getAsTagType(), and Type::getAsRecordType() with their Type::getAs<XXX> equivalents. llvm-svn: 76139 | |||||
* | ir-gen for --/++ operators of objc object pointers | Fariborz Jahanian | 2009-07-16 | 1 | -1/+19 | |
| | | | | | | in 32bit abi. llvm-svn: 76109 | |||||
* | Hook in s390x stuff into clang | Anton Korobeynikov | 2009-07-16 | 1 | -0/+77 | |
| | | | | llvm-svn: 76099 | |||||
* | Add member template 'Type::getAs<T>', which converts a Type* to a respective T*. | Ted Kremenek | 2009-07-16 | 5 | -11/+11 | |
| | | | | | | | | | | | | | | | | | | | | | This method is intended to eventually replace the individual Type::getAsXXXType<> methods. The motivation behind this change is twofold: 1) Reduce redundant implementations of Type::getAsXXXType() methods. Most of them are basically copy-and-paste. 2) By centralizing the implementation of the getAs<Type> logic we can more smoothly move over to Doug Gregor's proposed canonical type smart pointer scheme. Along with this patch: a) Removed 'Type::getAsPointerType()'; now clients use getAs<PointerType>. b) Removed 'Type::getAsBlockPointerTypE()'; now clients use getAs<BlockPointerType>. llvm-svn: 76098 | |||||
* | Update for LLVM API change. | Owen Anderson | 2009-07-16 | 1 | -5/+5 | |
| | | | | llvm-svn: 76090 | |||||
* | use CreateRuntimeVariable to get __CFConstantStringClassReference | Chris Lattner | 2009-07-16 | 1 | -11/+6 | |
| | | | | | | | instead of doing it manually (which might end up getting auto-renamed), fixing a FIXME. rdar://7065446 llvm-svn: 76079 |