Daniel Dunbar [Sat, 13 Mar 2010 00:47:25 +0000 (00:47 +0000)]
MC/X86: Add an XFAIL test where we aren't matching the correct instruction
because we don't understand how the specific instruction is doing sign
extension.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98404
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Sat, 13 Mar 2010 00:45:31 +0000 (00:45 +0000)]
Remove extra parameter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98403
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 13 Mar 2010 00:43:32 +0000 (00:43 +0000)]
Combine the code to build VLDM and VSTM instructions, since they are
mostly the same.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98402
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Sat, 13 Mar 2010 00:10:20 +0000 (00:10 +0000)]
Do not overestimate code size reduction in presense of debug info.
Use CodeMetrics.analyzeBasicBlock() to estimate BB size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98401
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 12 Mar 2010 22:50:09 +0000 (22:50 +0000)]
Tidy up. No functional changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98398
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 12 Mar 2010 22:07:14 +0000 (22:07 +0000)]
MC/Mach-O: Implement initial support for relaxation.
- The implementation is currently very brain dead and inefficient, but I have a
clear plan on how to fix it.
- The good news is, it works and correctly assembles 403.gcc (when built with
Clang, at '-Os', '-Os -g', and '-O3'). Even better, at '-Os' and '-Os -g',
the resulting binary is exactly equivalent to that when built with the system
assembler. So it probably works! :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98396
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 12 Mar 2010 22:00:08 +0000 (22:00 +0000)]
Remove obsolete comments. VLDM is implemented in ARMInstrVFP.td.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98395
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Fri, 12 Mar 2010 21:42:14 +0000 (21:42 +0000)]
Fix LLVM build when the user specifies CPPFLAGS on the make command line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98394
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 21:30:49 +0000 (21:30 +0000)]
remove gone method, grr symlinks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98392
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 21:21:19 +0000 (21:21 +0000)]
remove special case code that isn't needed anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98391
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 21:19:23 +0000 (21:19 +0000)]
inline GetGlobalValueSymbol into the rest its callers and
remove it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98390
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 21:09:07 +0000 (21:09 +0000)]
inline the now-trivial implementation of GetGlobalValueSymbol into
some of its callers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98388
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 21:06:41 +0000 (21:06 +0000)]
eliminate the X86 version of GetGlobalValueSymbol, allowing
it to be non-virtual and soon disappear.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98387
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 21:04:31 +0000 (21:04 +0000)]
prune #includes, this file should be removed pending hte cygwin stub issue being resolved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98386
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 21:03:47 +0000 (21:03 +0000)]
move fastcall/stdcall mangling up into Mangler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98384
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 12 Mar 2010 21:00:49 +0000 (21:00 +0000)]
MC: Factor out MCAssembler::EvaluateFixup, and simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98381
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 12 Mar 2010 21:00:45 +0000 (21:00 +0000)]
MC: Constify MCAsmLayout argument to MCExpr::EvaluteAs...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98380
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 12 Mar 2010 21:00:38 +0000 (21:00 +0000)]
MC: Add MCAssembler::addFixup, which enforces that fixups are added in order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98379
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 20:47:28 +0000 (20:47 +0000)]
give Mangler access to TargetData.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98378
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 20:43:52 +0000 (20:43 +0000)]
make DecorateCygMingName a static method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98377
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 12 Mar 2010 20:41:29 +0000 (20:41 +0000)]
Add a virtual destructor and give vtable a home.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98376
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 19:48:03 +0000 (19:48 +0000)]
minor tidying, only do work if a function is
actually X86_StdCall or X86_FastCall.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98374
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 19:42:40 +0000 (19:42 +0000)]
eliminate the string form of DecorateCygMingName
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98373
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 19:31:03 +0000 (19:31 +0000)]
remove the FnArgWords cache to make way for future changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98372
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 12 Mar 2010 19:20:40 +0000 (19:20 +0000)]
Add a beta-test for placing the LSDA into the TEXT section on X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98370
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 12 Mar 2010 19:18:30 +0000 (19:18 +0000)]
Fix llc crash on invalid input.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98369
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 19:14:18 +0000 (19:14 +0000)]
Remove some dead code. This method only gets called on
definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98368
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 19:04:14 +0000 (19:04 +0000)]
use Mang->getSymbol instead of duplicating the logic, reduce indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98367
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 18:55:20 +0000 (18:55 +0000)]
finally give Mangler a getSymbol method, which returns an MCSymbol
for a global instead of messing around with string buffers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98366
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 18:49:32 +0000 (18:49 +0000)]
remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98365
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 18:47:50 +0000 (18:47 +0000)]
simplify code to use OutContext.GetOrCreateTemporarySymbol with
no arguments instead of having to come up with a unique name.
This also makes the code less fragile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98364
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 18:44:54 +0000 (18:44 +0000)]
make the mangler take an MCContext instead of an MAI.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98363
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 18:28:53 +0000 (18:28 +0000)]
remove MAI argument from createAsmStreamer since it
can get it from the context now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98361
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 18:10:35 +0000 (18:10 +0000)]
fix a bug emitting .secrel32 that I introduced, PR6587, patch
by A.Mazur!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98360
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 12 Mar 2010 17:55:20 +0000 (17:55 +0000)]
When constant folding GEP of GEP, do not crash if an index of
the inner GEP is not a ConstantInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98359
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Fri, 12 Mar 2010 17:45:06 +0000 (17:45 +0000)]
Free DbgScopes in DwarfDebug::endFunction(). Also increased the const-ness of
several fields to make it easier to figure out where bugs might be creeping in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98358
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 12 Mar 2010 17:41:34 +0000 (17:41 +0000)]
Revert turning copysignl into a COPYSIGN node for the moment:
ppc calls copysignl with a 128 bit ppc long double, resulting
in a node that the type legalizer doesn't know how to expand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98357
91177308-0d34-0410-b5e6-
96231b3b80d8
Kovarththanan Rajaratnam [Fri, 12 Mar 2010 14:17:24 +0000 (14:17 +0000)]
Remove superfluous NULL assignment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98350
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 12 Mar 2010 13:54:59 +0000 (13:54 +0000)]
Use StringRef::substr instead of std::string::substr to avoid using a free'd
string temporary. This should fix PR6590.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98349
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 12 Mar 2010 12:13:59 +0000 (12:13 +0000)]
Now that it's supported, turn copysignl into a COPYSIGN node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98348
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 12 Mar 2010 11:45:06 +0000 (11:45 +0000)]
Fix PR6522: implement copysign expansion for x86 long double
(it seems that FreeBSD doesn't have copysignl). Done by
removing a bunch of assumptions from the code. This may also
help with sparc 128 bit floats.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98346
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 12 Mar 2010 09:27:41 +0000 (09:27 +0000)]
Factor checked library call optimization into a common helper class and use it
to unify the almost identical code in CodeGenPrepare and InstCombineCalls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98338
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 07:15:36 +0000 (07:15 +0000)]
fix PR6577, a bug in sdbuilder lowering select instructions
whose true value was not Val#0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98336
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 06:32:12 +0000 (06:32 +0000)]
update mkpatch for MC, patch by Aaron Gray
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98334
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 12 Mar 2010 02:00:43 +0000 (02:00 +0000)]
The same situation that effected ARM effects PPC with regards to placing the
LSDA into the TEXT section. We need to generate non-lazy pointers to it on
Mach-O. However, the object the NLP points to may be local to the translation
unit. If so, then the NLP needs to have the value of that object specified
instead of "0", which the linker interprets as "external".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98325
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2010 01:56:43 +0000 (01:56 +0000)]
make TargetLoweringObjectFile::getExprForDwarfReference
just make unnamed temp symbols instead of having to come
up with its own names.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98324
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 11 Mar 2010 23:44:52 +0000 (23:44 +0000)]
There is no need to create specification DIE for definitions at DIFile level.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98302
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 11 Mar 2010 23:39:44 +0000 (23:39 +0000)]
MC-ize PPC's asm printing of stubs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98300
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 11 Mar 2010 23:21:19 +0000 (23:21 +0000)]
Whoops this already existed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98297
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 11 Mar 2010 23:06:07 +0000 (23:06 +0000)]
Add a handful of additional useful pass manager things to the C API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98296
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 11 Mar 2010 23:04:34 +0000 (23:04 +0000)]
Extract methods from LocalRewriter::RewriteMBB bringing it down to 666 lines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98295
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 11 Mar 2010 22:56:10 +0000 (22:56 +0000)]
enhance MCContext::GetOrCreateTemporarySymbol() to create a new symbol
with an arbitrary unique name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98294
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 11 Mar 2010 22:53:35 +0000 (22:53 +0000)]
change MCContext to always have an MCAsmInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98293
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 11 Mar 2010 21:55:20 +0000 (21:55 +0000)]
fix a fixme in TargetLoweringObjectFile::getExprForDwarfReference
where we used ot create an MCSymbol for ".". Now emit an assembler
temporary label and reference it instead of "." textually.
rdar://
7739457
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98292
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 11 Mar 2010 21:39:57 +0000 (21:39 +0000)]
Remove getWidenVectorType, which is no longer used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98289
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 11 Mar 2010 21:38:58 +0000 (21:38 +0000)]
empty symbols aren't possible, the mcsymbol ctor aborts on them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98288
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Thu, 11 Mar 2010 21:02:50 +0000 (21:02 +0000)]
Set the (Format)F filed of t2Int_MemBarrierV7 & t2Int_SyncBarrierV7 to ThumbFrm,
instead of Pseudo, which helps Thumb decoder to recognize them as Thumb instr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98285
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 11 Mar 2010 20:45:13 +0000 (20:45 +0000)]
stpcpy is so similar to strcpy, it doesn't deserve a complete copy of the __strcpy_chk -> strcpy code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98284
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 11 Mar 2010 19:50:31 +0000 (19:50 +0000)]
revert r98270.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98281
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 11 Mar 2010 19:41:58 +0000 (19:41 +0000)]
rename getSymbolForDwarf* to getExprForDwarf* since it returns
an MCExpr and not an MCSymbol. Change it to take an MCStreamer,
which is currently unused.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98278
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 11 Mar 2010 19:38:18 +0000 (19:38 +0000)]
In case of tail call size of Ins and InVals may not match.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98277
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 11 Mar 2010 19:24:34 +0000 (19:24 +0000)]
Lower stpcpy_chk when possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98274
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 11 Mar 2010 18:49:14 +0000 (18:49 +0000)]
Bad bad bug. x86 force indirect tail call address into eax when it's meant to force it into a call preserved register instead. Change it to ecx for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98270
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Osborne [Thu, 11 Mar 2010 18:38:59 +0000 (18:38 +0000)]
Remove dead code. (S|U)MUL_LO is now lowered to LMUL or MACC(S|U)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98269
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Thu, 11 Mar 2010 18:29:55 +0000 (18:29 +0000)]
Avoid leaking CompileUnits in DwarfDebug.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98268
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 11 Mar 2010 18:22:51 +0000 (18:22 +0000)]
MC/Mach-O: Add MCSymbolData::getAddress() utility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98266
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 11 Mar 2010 17:45:38 +0000 (17:45 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98260
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Osborne [Thu, 11 Mar 2010 16:26:35 +0000 (16:26 +0000)]
Add dag combine to simplify lmul(x, 0, a, b)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98258
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Osborne [Thu, 11 Mar 2010 14:58:56 +0000 (14:58 +0000)]
Switch XCore over to using inline jump table entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98256
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Osborne [Thu, 11 Mar 2010 14:58:16 +0000 (14:58 +0000)]
Add a new jump table encoding to indicate jump tables entries
are inside the function by the target at the point of use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98255
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 11 Mar 2010 08:20:21 +0000 (08:20 +0000)]
The check for coalescing a virtual register to a physical register, e.g.
cl = EXTRACT_SUBREG reg1024, 1, is overly conservative. It should check
for overlaps of vr's live interval with the super registers of the
physical register (ECX in this case) and let JoinIntervals() handle checking
the coalescing feasibility against the physical register (cl in this case).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98251
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 11 Mar 2010 07:51:23 +0000 (07:51 +0000)]
Update CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98250
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 11 Mar 2010 06:20:22 +0000 (06:20 +0000)]
Have fast-isel understand llvm.objectsize. Update testcase for slightly
different codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98244
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Thu, 11 Mar 2010 06:14:32 +0000 (06:14 +0000)]
Make clang bootstrap happier on OSX 10.5 by reducing the number of headers
included when using global symbols to ask the linker for the addresses of
various functions. One of the symbols was actually getting declared by a
header included in DynamicLibrary.cpp, which conflicted with the "extern void*"
declaration in SearchForAddressOfSpecialSymbol().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98243
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 11 Mar 2010 05:53:37 +0000 (05:53 +0000)]
MC/Mach-O: Implement "absolutizing" semantics of .set, by evaluating the assembly time value of variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98241
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 11 Mar 2010 05:53:33 +0000 (05:53 +0000)]
MC/Mach-O: Start passing in the basic MCAsmLayout object.
- Also, drop the current location part of AsmLayout, I think I prefer to implement this via explicit symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98240
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 11 Mar 2010 02:41:03 +0000 (02:41 +0000)]
Do some final lowering in CodeGenPrepare of _chk calls similar to
that in InstCombineCalls.
More call lowering needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98228
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 11 Mar 2010 02:28:59 +0000 (02:28 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98227
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 11 Mar 2010 02:28:52 +0000 (02:28 +0000)]
Fix (unused) RegisterAsmBackend template, clang++ isn't happy about this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98226
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 11 Mar 2010 02:28:48 +0000 (02:28 +0000)]
Remove dead include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98225
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 11 Mar 2010 02:10:24 +0000 (02:10 +0000)]
Fix debug_value handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98224
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 11 Mar 2010 01:34:27 +0000 (01:34 +0000)]
MC: Provide MCAssembler with a TargetAsmBackend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98222
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 11 Mar 2010 01:34:21 +0000 (01:34 +0000)]
MC: Sketch some TargetAsmBackend hooks we are going to need.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98221
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 11 Mar 2010 01:34:16 +0000 (01:34 +0000)]
MC: Provide the target triple to AsmBackend constructors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98220
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 11 Mar 2010 01:25:07 +0000 (01:25 +0000)]
Add strncpy libcall creator. Use it when it should be used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98219
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 11 Mar 2010 01:18:13 +0000 (01:18 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98218
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Thu, 11 Mar 2010 01:13:36 +0000 (01:13 +0000)]
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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98217
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 11 Mar 2010 00:52:12 +0000 (00:52 +0000)]
Make sure HasDebugValue is initialized. This should fix
the buildbot running valgrind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98216
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 11 Mar 2010 00:46:22 +0000 (00:46 +0000)]
Fix ARM buildbot breakage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98215
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 11 Mar 2010 00:22:57 +0000 (00:22 +0000)]
add support, testcases, and dox for the new GHC calling
convention. Patch by David Terei!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98212
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 11 Mar 2010 00:20:49 +0000 (00:20 +0000)]
Lower small memcpys to load/stores on Thumb2.
Radar
7686922.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98210
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 11 Mar 2010 00:11:33 +0000 (00:11 +0000)]
VirtRegRewriter spring cleaning. No functional change.
Move methods out of line and M-x whitespace-cleanup.
Promote common method arguments to member variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98207
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 11 Mar 2010 00:06:19 +0000 (00:06 +0000)]
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 ;-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98205
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Mar 2010 23:46:44 +0000 (23:46 +0000)]
fix PR6533 by updating the br(xor) code to remember the case
when it looked past a trunc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98203
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 10 Mar 2010 23:37:24 +0000 (23:37 +0000)]
Cosmetic: lengthen names and improve comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98202
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 10 Mar 2010 22:38:45 +0000 (22:38 +0000)]
Fix an obvious typo in an assert.
Patch by Sean Callanan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98200
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 10 Mar 2010 22:34:10 +0000 (22:34 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98199
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 10 Mar 2010 22:13:47 +0000 (22:13 +0000)]
Progress towards shepherding debug info through SelectionDAG.
No functional effect yet. This is still evolving and should
not be viewed as final.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98195
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Mar 2010 21:42:42 +0000 (21:42 +0000)]
move PR6576 here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98194
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Mar 2010 21:27:53 +0000 (21:27 +0000)]
add DESTDIR support for TOOLALIAS, for PR6557, patch by
Matthias Klose!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98193
91177308-0d34-0410-b5e6-
96231b3b80d8