Commit Graph

79862 Commits

Author SHA1 Message Date
Anders Carlsson de710c9125 Get rid of the PrimaryBase parameter from LayoutVirtualBases.
llvm-svn: 98233
2010-03-11 04:33:54 +00:00
Anders Carlsson f7b7a1e781 More cleanup towards fixing the real bug.
llvm-svn: 98232
2010-03-11 04:24:02 +00:00
Anders Carlsson 6a84889d3f Replace the class offset vectors in RecordLayoutBuilder with maps instead so we'll have faster lookup and so we can detect duplicates.
llvm-svn: 98231
2010-03-11 04:10:39 +00:00
Anders Carlsson f2fa75bdbb More cleanup.
llvm-svn: 98230
2010-03-11 03:39:12 +00:00
Anders Carlsson c4c00ec41b More record layout builder cleanup.
llvm-svn: 98229
2010-03-11 02:41:30 +00:00
Eric Christopher 4b7948e09e Do some final lowering in CodeGenPrepare of _chk calls similar to
that in InstCombineCalls.

More call lowering needed.

llvm-svn: 98228
2010-03-11 02:41:03 +00:00
Daniel Dunbar ac8a95498a MC: Sketch initial MCAsmLayout class, which encapsulates the current layout of an assembly file. The MCAsmLayout is also available for use by MCExpr::EvaluateAs{Absolute,Relocatable}, to allow target specific hooks and "absolutizing" of symbols.
llvm-svn: 98227
2010-03-11 02:28:59 +00:00
Daniel Dunbar bd01967261 Fix (unused) RegisterAsmBackend template, clang++ isn't happy about this.
llvm-svn: 98226
2010-03-11 02:28:52 +00:00
Daniel Dunbar 84b5ddc872 Remove dead include.
llvm-svn: 98225
2010-03-11 02:28:48 +00:00
Dale Johannesen 197bd3eee9 Fix debug_value handling.
llvm-svn: 98224
2010-03-11 02:10:24 +00:00
Anders Carlsson 09db5370b7 Assert that primary bases always have offset 0.
llvm-svn: 98223
2010-03-11 01:49:18 +00:00
Daniel Dunbar c5ddbad237 MC: Provide MCAssembler with a TargetAsmBackend.
llvm-svn: 98222
2010-03-11 01:34:27 +00:00
Daniel Dunbar 77c4141c8f MC: Sketch some TargetAsmBackend hooks we are going to need.
llvm-svn: 98221
2010-03-11 01:34:21 +00:00
Daniel Dunbar 245f5b2810 MC: Provide the target triple to AsmBackend constructors.
llvm-svn: 98220
2010-03-11 01:34:16 +00:00
Eric Christopher 43dc11c525 Add strncpy libcall creator. Use it when it should be used.
llvm-svn: 98219
2010-03-11 01:25:07 +00:00
Bill Wendling e8e79524d2 When outputing a non-lazy pointer for a stub, we may need to fill in the value
for the NLP because the object it's pointing to may be internal to the file.

This seems counter-intuitive, but bear with me. When we place the LSDA into the
TEXT section, the type info pointers need to be indirect and pc-rel. We
accomplish this by using NLPs. However, sometimes the types are local to the
file. GCC gets around this by not using a NLP in this case, but a "regular"
indirection like this:

GCC_except_tbl:
  .long Lfoo-.

__ZTIA:  @ This is local
  ...

Lfoo:
  .long __ZTIA

LLVM prefers NLPs on Darwin. In fact, it's more optimal for load performance to
use them.

llvm-svn: 98218
2010-03-11 01:18:13 +00:00
Johnny Chen f5e81aeba5 Added Thumb2 LDRD/STRD pre/post variants for disassembly only.
Plus fixed the encoding of t2LDRDpci such that P = 1 and W = 0 (offset mode).

llvm-svn: 98217
2010-03-11 01:13:36 +00:00
Dale Johannesen 28492aa626 Make sure HasDebugValue is initialized. This should fix
the buildbot running valgrind.

llvm-svn: 98216
2010-03-11 00:52:12 +00:00
Bob Wilson 1b0e614b10 Fix ARM buildbot breakage.
llvm-svn: 98215
2010-03-11 00:46:22 +00:00
Ted Kremenek e0966be5ce Remove unused 'IVars' field from ObjCInterfaceDecl. That functionality
has migrated to DeclContext.

llvm-svn: 98213
2010-03-11 00:36:10 +00:00
Chris Lattner a179e4d0a8 add support, testcases, and dox for the new GHC calling
convention.  Patch by David Terei!

llvm-svn: 98212
2010-03-11 00:22:57 +00:00
Anders Carlsson aa87b4eab1 Remove the IndirectPrimary parameter in LayoutVirtualBases; it's already there as a member variable.
llvm-svn: 98211
2010-03-11 00:21:21 +00:00
Bob Wilson c499fae068 Lower small memcpys to load/stores on Thumb2.
Radar 7686922.

llvm-svn: 98210
2010-03-11 00:20:49 +00:00
Anders Carlsson 8630b5b09b More cleanup and simplification of the record layout builder.
llvm-svn: 98208
2010-03-11 00:15:35 +00:00
Jakob Stoklund Olesen 7bbe14337b VirtRegRewriter spring cleaning. No functional change.
Move methods out of line and M-x whitespace-cleanup.
Promote common method arguments to member variables.

llvm-svn: 98207
2010-03-11 00:11:33 +00:00
John McCall ea8d8bb718 Support PPC-32 DWARF EH intrinisics. Thanks to rdivacky for his assistance.
llvm-svn: 98206
2010-03-11 00:10:12 +00:00
Chris Lattner 963b233f2c Work around a bug in the openbsd assembler on i386,
which doesn't support .quad correctly because it is
"really really old".  PR6528.

Yet another reason the mc assembler should take over ;-)

llvm-svn: 98205
2010-03-11 00:06:19 +00:00
Chris Lattner 4d94109903 set alignment on static locals properly, patch by Arnaud de Grandmaison!
llvm-svn: 98204
2010-03-10 23:59:59 +00:00
Chris Lattner 4ec0b670d5 fix PR6533 by updating the br(xor) code to remember the case
when it looked past a trunc.

llvm-svn: 98203
2010-03-10 23:46:44 +00:00
Dale Johannesen 29108f0b6c Cosmetic: lengthen names and improve comments.
llvm-svn: 98202
2010-03-10 23:37:24 +00:00
Bob Wilson c4ceb1e2f8 Fix an obvious typo in an assert.
Patch by Sean Callanan.

llvm-svn: 98200
2010-03-10 22:38:45 +00:00
Bill Wendling a810bdfcca Add a bit along with the MCSymbols stored in the MachineModuleInfo maps that
indicates that an MCSymbol is external or not. (It's true if it's external.)
This will be used to specify the correct information to add to non-lazy
pointers. That will be explained further when this bit is used.

llvm-svn: 98199
2010-03-10 22:34:10 +00:00
Anders Carlsson 0d0b588fb2 Get rid of the LayoutBaseNonVirtually; it was used to lay out a base either as a non-virtual base or a virtual base.
llvm-svn: 98198
2010-03-10 22:26:24 +00:00
Anders Carlsson 09ffa32b92 More shuffling.
llvm-svn: 98197
2010-03-10 22:21:28 +00:00
Anders Carlsson f08e681ba8 Cleanups, no functionality change yet.
llvm-svn: 98196
2010-03-10 22:16:06 +00:00
Dale Johannesen 49de0607a8 Progress towards shepherding debug info through SelectionDAG.
No functional effect yet.  This is still evolving and should
not be viewed as final.

llvm-svn: 98195
2010-03-10 22:13:47 +00:00
Chris Lattner 1f6689a8ba move PR6576 here.
llvm-svn: 98194
2010-03-10 21:42:42 +00:00
Chris Lattner 0c48de0d62 add DESTDIR support for TOOLALIAS, for PR6557, patch by
Matthias Klose!

llvm-svn: 98193
2010-03-10 21:27:53 +00:00
Chris Lattner 93f0a7dda1 add DESTDIR support for clang headers, PR6556.
Patch by Matthias Klose!

llvm-svn: 98192
2010-03-10 21:26:01 +00:00
Anders Carlsson 423406f335 Fix calculation of whether a member function needs a thunk in construction vtables.
llvm-svn: 98191
2010-03-10 21:25:37 +00:00
Fariborz Jahanian a4a925febb Change the 'super' messaging API in the rewriter.
Fixes radar 7738452.

llvm-svn: 98190
2010-03-10 21:17:41 +00:00
John McCall c9d4a84c2a Suppress the tag when printing an ElaboratedType if the language options
claim this is C.  We don't make ElaboratedTypes in C, but sometimes
the language options during pretty-print lie to us.

The rewriter should really be fixed to not rely on how types are pretty-printed,
though.

llvm-svn: 98189
2010-03-10 21:05:46 +00:00
Dan Gohman 703b12d62f Fix another bitwidth calculation to handle vector types; based on a
patch by Micah Villmow for PR6572.

llvm-svn: 98188
2010-03-10 21:04:53 +00:00
Daniel Dunbar dc765e9f03 MC/Mach-O: Use the MCAssembler symbol map instead of reconstructing.
llvm-svn: 98187
2010-03-10 20:58:31 +00:00
Daniel Dunbar 6eab721011 MC: Move the backend section and symbol data maps to MCAssembler.
llvm-svn: 98186
2010-03-10 20:58:29 +00:00
Daniel Dunbar bf801a559a Remove unneeded declarations.
llvm-svn: 98185
2010-03-10 20:58:25 +00:00
Jim Grosbach f0a7e8e77d Make sure the LR gets pushed in functions that use vaargs. This fixes
400.perlbench for the nightly tests.

llvm-svn: 98183
2010-03-10 20:01:30 +00:00
Jim Grosbach 77f781405d comment why we use custom epilogue for t1 functions using vaargs.
llvm-svn: 98182
2010-03-10 19:59:47 +00:00
Dale Johannesen e9b361b2e6 Fix another place where DEBUG_VALUE affected codegen.
llvm-svn: 98181
2010-03-10 19:57:56 +00:00
Anders Carlsson 115b4756b5 We were mistakenly marking morally virtual bases as being uninteresting. Fix this.
llvm-svn: 98180
2010-03-10 19:39:11 +00:00