Commit Graph

2806 Commits

Author SHA1 Message Date
Devang Patel
ea84f59f5c Add comment.
llvm-svn: 93434
2010-01-14 18:06:13 +00:00
David Chisnall
035ead209f Made ObjC method name mangling match GCC (which does it in a stupid and broken way that can give conflicts on method names containing underscores, but is needed for gdb to work because gdb does not know how to read ObjC class tables and relies on the mangling).
llvm-svn: 93427
2010-01-14 14:08:19 +00:00
Anders Carlsson
5f9a881e1e Store the address points for constructor vtables directly in the VTT builder, because that's the only time they're needed.
llvm-svn: 93412
2010-01-14 02:29:07 +00:00
Anders Carlsson
2a4adbea96 Add a DenseMapInfo specialization for BaseSubobject.
llvm-svn: 93399
2010-01-14 01:39:42 +00:00
Devang Patel
4274a326be Because CurLoc is the current source location as far as CGDebugInfo is concerned. It is expected that this is set (usually left bracket location of function body compound statement) before EmitfunctionStart() is used.
llvm-svn: 93389
2010-01-14 00:48:09 +00:00
Devang Patel
934661ed73 Emit human readable names for c/c++ functions. Avoid emitting linkage name if it matches regular name.
llvm-svn: 93383
2010-01-14 00:36:21 +00:00
Anders Carlsson
20871481d2 Add a BaseSubobject class to uniquely identify a base class subobject. Not yet used.
llvm-svn: 93345
2010-01-13 20:11:15 +00:00
Chris Lattner
e3e76e2a69 Use the new isInteger() method in a couple places, some random cleanup, and
add a fixme.

llvm-svn: 93179
2010-01-11 19:58:10 +00:00
David Chisnall
c8fc573ea0 Fix type mismatch on 64-bit platforms (GNU ObjC).
llvm-svn: 93169
2010-01-11 19:02:35 +00:00
Ken Dyck
40775003e6 Roll out ASTContext::getTypeSizeInChars(), replacing instances of
"ASTContext::getTypeSize() / 8". Replace [u]int64_t variables with CharUnits
ones as appropriate. 

Also rename RawType, fromRaw(), and getRaw() in CharUnits to QuantityType, 
fromQuantity(), and getQuantity() for clarity.

llvm-svn: 93153
2010-01-11 17:06:35 +00:00
Anton Korobeynikov
b322c3a34b Try to make cmake happy
llvm-svn: 93119
2010-01-10 13:06:34 +00:00
Anton Korobeynikov
55bcea1e65 Generalize target weirdness handling having proper layering in mind:
1. Add helper class for sema checks for target attributes
 2. Add helper class for codegen of target attributes

As a proof-of-concept - implement msp430's 'interrupt' attribute.

llvm-svn: 93118
2010-01-10 12:58:08 +00:00
Anton Korobeynikov
89b14a4309 Rename file to generalization in next commits
llvm-svn: 93117
2010-01-10 12:57:30 +00:00
Chris Lattner
bb8976e36e implement codegen support for preinc as an lvalue, PR5514.
llvm-svn: 93076
2010-01-09 21:44:40 +00:00
Chris Lattner
116ce8f172 refactor pre/postinc logic into CGF and require the caller to pass in the
lvalue to poke, no functionality change.

llvm-svn: 93075
2010-01-09 21:40:03 +00:00
Chris Lattner
34c72dd683 revert r92749, which is just dead code.
llvm-svn: 93074
2010-01-09 21:14:47 +00:00
Eli Friedman
5866fe306d Fix for PR5967: Make const-marking for LLVM globals correct for cases requiring
run-time initialization, and emit run-time initializers aggresively to avoid
ordering issues with deferred globals.

llvm-svn: 92976
2010-01-08 00:50:11 +00:00
David Chisnall
df34917a38 Export a public symbol for classes with the GNU runtime.
llvm-svn: 92973
2010-01-08 00:14:31 +00:00
Nuno Lopes
950d5b2cd3 fix PR5869: mangle static symbols like gcc does to make it easier to diff symbol tables
llvm-svn: 92911
2010-01-07 09:36:51 +00:00
Douglas Gregor
2a34df3264 Fix linkage for RTTI names by re-using the logic for computing the
linkage of vtables. Before this, we were emitting RTTI names for
template instantiations with strong external linkage rather than with
weak ODR linkage.

llvm-svn: 92857
2010-01-06 22:00:56 +00:00
Douglas Gregor
ccecc1bb43 Fix marking of virtual members for nested classes whose first non-pure virtual function has a body inlined in the class
llvm-svn: 92855
2010-01-06 20:27:16 +00:00
David Chisnall
9a2073c035 Fix for PR5691
llvm-svn: 92846
2010-01-06 18:02:59 +00:00
Daniel Dunbar
a671c2a9fe Fix (invalid) may-be-uninitialized warning.
llvm-svn: 92828
2010-01-06 07:13:04 +00:00
Douglas Gregor
d01472beee Revert my available_externally vtables experiment. It's breaking the LLVM-with-Clang build with linker errors that I have yet to investigate.
llvm-svn: 92822
2010-01-06 04:50:56 +00:00
Mike Stump
81478719a7 Reorder to avoid invalidating idx which is an accessor into VCall.
llvm-svn: 92819
2010-01-06 03:09:19 +00:00
Douglas Gregor
26751ffc53 Silence bogus GCC warning
llvm-svn: 92787
2010-01-05 21:55:26 +00:00
Douglas Gregor
1a68ab6c83 Make use of available_externally linkage for vtables when the
non-inline key function of a class template instantiation, when no key
function is present, the class template instantiation itself was
instantiated with an explicit instantiation declaration (aka extern
template). I'm fairly certain that the C++0x specification gives us
this lattitude, although GCC doesn't take advantage of it.

llvm-svn: 92779
2010-01-05 21:40:05 +00:00
Douglas Gregor
a318efd1f2 Improve key-function computation for templates. In particular:
- All classes can have a key function; templates don't change that.
  non-template classes when computing the key function.
  - We always mark all of the virtual member functions of class
  template instantiations. 
  - The vtable for an instantiation of a class template has weak
  linkage. 

We could probably use available_externally linkage for vtables of
classes instantiated by explicit instantiation declarations (extern
templates), but GCC doesn't do this and I'm not 100% that the ABI
permits it.

llvm-svn: 92753
2010-01-05 19:06:31 +00:00
Mike Stump
79ed590c85 Add code to skip the emission of available externally functions at -O0. WIP.
llvm-svn: 92749
2010-01-05 18:48:04 +00:00
Anders Carlsson
a0b025e40f When emitting member function pointers, use the canonical decl if the member function is virtual. Fixes PR5940.
llvm-svn: 92680
2010-01-05 05:04:05 +00:00
Daniel Dunbar
d443c0a02a Revert r92431, this code isn't dead and broke the ntfs build.
llvm-svn: 92493
2010-01-04 18:47:06 +00:00
Daniel Dunbar
5b9019515a Fix -Asserts warning.
llvm-svn: 92491
2010-01-04 18:02:28 +00:00
Eli Friedman
6257e08a3d Get rid of more dead code.
llvm-svn: 92439
2010-01-03 01:11:47 +00:00
Eli Friedman
c52a9367b3 Get rid of some unnecessary code.
llvm-svn: 92432
2010-01-02 23:43:59 +00:00
Eli Friedman
14e4005851 Delete impossible case.
llvm-svn: 92431
2010-01-02 23:28:56 +00:00
Anders Carlsson
c92a37e917 Speculative MSVC fix.
llvm-svn: 92421
2010-01-02 18:46:23 +00:00
Anders Carlsson
93a1884fde Move address points to CGVtableInfo, no functionality change.
llvm-svn: 92420
2010-01-02 18:02:32 +00:00
Anders Carlsson
e36a6b3e44 Correctly pass VTT parameters to constructors and destructors. The VTTs aren't yet used in the ctors/dtors, but that will follow.
llvm-svn: 92409
2010-01-02 01:01:18 +00:00
Anders Carlsson
27da15ba8e Move a few more functions away from CGCXX and to CGClass and CGExprCXX.
llvm-svn: 92399
2010-01-01 20:29:01 +00:00
Mike Stump
9d44fdb397 Fix last patch, catch of reference to non-pointer.
llvm-svn: 92386
2010-01-01 03:20:32 +00:00
Mike Stump
5ee041873b Fix catching a reference to a pointer.
llvm-svn: 92385
2010-01-01 02:51:52 +00:00
Anders Carlsson
2d21394190 If the key function of a record is inline, then the RTTI data should have weak_odr linkage.
llvm-svn: 92371
2009-12-31 19:36:25 +00:00
Anders Carlsson
7ae81bb711 More RTTI builder cleanup.
llvm-svn: 92360
2009-12-31 17:43:53 +00:00
Anders Carlsson
a442499072 Fix a bunch of bugs with VMI RTTI building, and add a whole bunch of tests.
llvm-svn: 92319
2009-12-30 23:47:56 +00:00
Anders Carlsson
ac2f681777 More RTTI cleanup, test that RTTI classes have the correct vtables.
llvm-svn: 92284
2009-12-30 01:00:12 +00:00
Anders Carlsson
79c184e975 Match gcc and treat vector types as fundamental types.
llvm-svn: 92278
2009-12-29 22:30:11 +00:00
Anders Carlsson
ef88695860 Handle enum types as well.
llvm-svn: 92276
2009-12-29 22:13:01 +00:00
Anders Carlsson
0e4151c685 Test linkage of RTTI descriptors of array types.
llvm-svn: 92274
2009-12-29 21:58:32 +00:00
Anders Carlsson
26cf4ab8e2 Fix function type RTTI linkage and add tests.
llvm-svn: 92266
2009-12-29 20:20:19 +00:00
Chris Lattner
3f8e5dd898 strength reduce this call away.
llvm-svn: 92253
2009-12-29 07:49:13 +00:00