Chris Lattner [Fri, 15 Jan 2010 18:27:19 +0000 (18:27 +0000)]
refactor ParseRegister to avoid using X86Operand as a temporary
datastructure when parsing a mem operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93521
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 15 Jan 2010 18:08:37 +0000 (18:08 +0000)]
mention that unwind isn't to be trusted, patch by Dustin Laurence
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93518
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Fri, 15 Jan 2010 17:36:47 +0000 (17:36 +0000)]
Revert r93504 because older uses of llvm.dbg.declare intrinsics need to be auto-upgraded
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93515
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Fri, 15 Jan 2010 11:29:26 +0000 (11:29 +0000)]
Test case for http://llvm.org/PR6028.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93511
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Fri, 15 Jan 2010 08:32:58 +0000 (08:32 +0000)]
Fix llvm.org/PR6028, an assertion failure when an UndefValue of
integer type is used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93509
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 15 Jan 2010 06:29:17 +0000 (06:29 +0000)]
Change pre-regalloc tail duplication to only duplicate indirect branch blocks.
The pre-regalloc pass caused some regressions in both compile time and
performance of the generated code, and it did not improve performance, except
for indirect branches. I also moved the check for single-block loops to speed
up the common case when running the taildup pass before reg allocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93505
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Fri, 15 Jan 2010 03:37:48 +0000 (03:37 +0000)]
Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast).
This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93504
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 15 Jan 2010 02:09:27 +0000 (02:09 +0000)]
Temporary disable tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93501
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 15 Jan 2010 01:54:55 +0000 (01:54 +0000)]
Lower FrameIndex operand of DEBUG_VALUE (specially) and
print it as a comment on X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93499
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 15 Jan 2010 01:50:44 +0000 (01:50 +0000)]
Remove DEBUG_DECLARE, looks like we don't need it.
Also, DEBUG_VALUE has side effects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93498
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 15 Jan 2010 01:29:49 +0000 (01:29 +0000)]
Fix cmp emission on msp430: we definitely should turn stuff like
"icmp lhs, rhs" into "cmp rhs, lhs". This should fix PR5979.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93496
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 15 Jan 2010 01:12:22 +0000 (01:12 +0000)]
Do not use AT_specification die for static variables. It confuses gdb.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93494
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Fri, 15 Jan 2010 00:41:53 +0000 (00:41 +0000)]
Make sure include/llvm/MC/MCParsedAsmOperand.h can be compiled alone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93492
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 15 Jan 2010 00:36:15 +0000 (00:36 +0000)]
fix 80-column violations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93487
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 15 Jan 2010 00:34:26 +0000 (00:34 +0000)]
new test case for r93485.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93486
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 15 Jan 2010 00:32:47 +0000 (00:32 +0000)]
Fix 80 column violations and clean up whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93484
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 15 Jan 2010 00:26:31 +0000 (00:26 +0000)]
Do not emit multiple AT_container_type attributes.
We need to find a better way to emit this info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93481
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 15 Jan 2010 00:22:18 +0000 (00:22 +0000)]
Name change for consistency. No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93480
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 15 Jan 2010 00:18:34 +0000 (00:18 +0000)]
EmitAtomicCmpSwap() custome inserter needs to delete the MI passed in. EmitAtomicBinary() already does this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93479
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Thu, 14 Jan 2010 23:15:26 +0000 (23:15 +0000)]
Teach PPC how to replaceMachineCodeForFunction correctly. (Fixes
JITTest.FunctionIsRecompiledAndRelinked.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93475
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 14 Jan 2010 23:00:10 +0000 (23:00 +0000)]
Pad my commit stats by reducing indentation in this now separate
commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93473
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Thu, 14 Jan 2010 22:42:17 +0000 (22:42 +0000)]
Added 16-bit Thumb Load/Store immediate instructions with encoding bits so that
the disassembler can properly decode Load/Store register/immediate instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93471
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 14 Jan 2010 22:29:57 +0000 (22:29 +0000)]
add virtual methods to get the start/end of a MCParsedAsmOperand,
the default implementation returns "unknown".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93470
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 14 Jan 2010 22:21:20 +0000 (22:21 +0000)]
Split the TargetAsmParser "ParseInstruction" interface in half:
the new ParseInstruction method just parses and returns a list of
target operands. A new MatchInstruction interface is used to
turn the operand list into an MCInst.
This requires new/deleting all the operands, but it also gives
targets the ability to use polymorphic operands if they want to.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93469
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 14 Jan 2010 22:09:38 +0000 (22:09 +0000)]
Add variable-width shifts for MSP430
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93468
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 14 Jan 2010 22:09:11 +0000 (22:09 +0000)]
Remove pseudo-MI in custom inserter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93467
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 14 Jan 2010 21:50:17 +0000 (21:50 +0000)]
Fix a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93463
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 14 Jan 2010 21:48:00 +0000 (21:48 +0000)]
Few minor changes that were requested. No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93462
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 14 Jan 2010 21:38:31 +0000 (21:38 +0000)]
Add comment explaining the necessity of r93456
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93459
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 14 Jan 2010 21:32:45 +0000 (21:32 +0000)]
prune #includes in TargetAsmParser.h
Pass in SMLoc of instr opcode into ParseInstruction.
Make AsmToken be a class, not a struct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93457
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 14 Jan 2010 21:22:16 +0000 (21:22 +0000)]
Dwarf EH prepare needs to be run after SjLj prepare. Otherwise,
catch info can get misplaced when a selector ends up more than one block
removed from the parent invoke(s). This could happen when a landing pad is
shared by multiple invokes and is also a target of a normal edge from
elsewhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93456
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 14 Jan 2010 21:21:40 +0000 (21:21 +0000)]
introduce MCParsedAsmOperand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93455
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 14 Jan 2010 21:20:55 +0000 (21:20 +0000)]
introduce the MCParsedAsmOperand class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93454
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 14 Jan 2010 21:04:31 +0000 (21:04 +0000)]
Small tweak to inline cost computation. Ext of i/fcmp results are mostly optimized away in codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93453
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 14 Jan 2010 20:19:51 +0000 (20:19 +0000)]
Remove spurious semicolon.
Patch by Diego Iastrubni!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93450
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Thu, 14 Jan 2010 20:12:34 +0000 (20:12 +0000)]
In debug builds, assert that function-local metadata has only 1 parent function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93449
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 14 Jan 2010 20:12:34 +0000 (20:12 +0000)]
Reduce the inlining cost of functions that contain calls to easily,
and frequently optimized functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93448
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Thu, 14 Jan 2010 19:54:11 +0000 (19:54 +0000)]
Simplify code that chooses when to enumerate function-local metadata operands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93446
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Thu, 14 Jan 2010 19:38:44 +0000 (19:38 +0000)]
Avoid modifying ValueEnumerator's MD ValueList by choosing which function-local MD to write based on the function currently being written
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93441
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 14 Jan 2010 18:19:56 +0000 (18:19 +0000)]
ARM "l" constraint for inline asm means R0-R7, also for Thumb2.
This is consistent with llvm-gcc's arm/constraints.md.
Certain instructions (e.g. CBZ, CBNZ) require a low register, even in Thumb2
mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93436
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 14 Jan 2010 10:19:55 +0000 (10:19 +0000)]
Use ENABLE_ASSERTIONS throughout.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93423
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 14 Jan 2010 03:08:49 +0000 (03:08 +0000)]
Fix a codegen abort seen in 483.xalancbmk.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93417
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 14 Jan 2010 02:24:50 +0000 (02:24 +0000)]
Test for r93409.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93410
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Thu, 14 Jan 2010 02:12:41 +0000 (02:12 +0000)]
Extend testcase to also test llvm.dbg.value intrinsic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93408
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Thu, 14 Jan 2010 01:51:28 +0000 (01:51 +0000)]
Now that LLParser, AsmWriter, BitcodeReader, and BitcodeWriter all correctly support function-local metadata, test it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93406
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Thu, 14 Jan 2010 01:50:08 +0000 (01:50 +0000)]
In WriteFunction(), write function-local metadata before we write the instructions, so instruction's references to metadata are fully resolved by the time they get written.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93403
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Thu, 14 Jan 2010 01:47:37 +0000 (01:47 +0000)]
Fix printing of function-local metadata in AsmWriter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93402
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Thu, 14 Jan 2010 01:46:02 +0000 (01:46 +0000)]
Clean up unnecessary return and brackets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93401
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Thu, 14 Jan 2010 01:45:14 +0000 (01:45 +0000)]
Add MDNode::getFunction(), which figures out the metadata's function, if it has function that it is local to.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93400
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 14 Jan 2010 00:54:10 +0000 (00:54 +0000)]
Don't fold insufficiently aligned ldr/str into ldm/stm instructions.
An unaligned ldr causes a trap, and is then emulated by the kernel with
awesome performance. The darwin kernel does not emulate unaligned ldm/stm
Thumb2 instructions, so don't generate them.
This fixes the miscompilation of Multisource/Applications/JM/lencod for Thumb2.
Generating unaligned ldr/str pairs from a 16-bit aligned memcpy is probably
also a bad idea, but that is beyond the scope of this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93393
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Thu, 14 Jan 2010 00:34:53 +0000 (00:34 +0000)]
Erm, previous patch was wrong; Thanks Bill\!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93381
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Thu, 14 Jan 2010 00:22:05 +0000 (00:22 +0000)]
Enable assertions by default for Apple-style builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93380
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 23:29:11 +0000 (23:29 +0000)]
this is an SSE-specific issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93373
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 23:28:40 +0000 (23:28 +0000)]
X86 if conversion + tail merging issues from PR6032.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93372
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 13 Jan 2010 23:23:17 +0000 (23:23 +0000)]
When the visitSub method was split into visitSub and visitFSub, this xform was
added to the FSub version. However, the original version of this xform guarded
against doing this for floating point (!Op0->getType()->isFPOrFPVector()).
This is causing LLVM to perform incorrect xforms for code like:
void func(double *rhi, double *rlo, double xh, double xl, double yh, double yl){
double mh, ml;
double c =
134217729.0;
double up, u1, u2, vp, v1, v2;
up = xh*c;
u1 = (xh - up) + up;
u2 = xh - u1;
vp = yh*c;
v1 = (yh - vp) + vp;
v2 = yh - v1;
mh = xh*yh;
ml = (((u1*v1 - mh) + (u1*v2)) + (u2*v1)) + (u2*v2);
ml += xh*yl + xl*yh;
*rhi = mh + ml;
*rlo = (mh - (*rhi)) + ml;
}
The last line was optimized away, but rl is intended to be the difference
between the infinitely precise result of mh + ml and after it has been rounded
to double precision.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93369
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Wed, 13 Jan 2010 22:21:43 +0000 (22:21 +0000)]
Add getSource() to SuccIterator
Get the source BB of an iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93364
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Wed, 13 Jan 2010 22:21:28 +0000 (22:21 +0000)]
Extend SuccIterator
Implement most of the missing methods to make SuccIterator random access.
operator[] is still missing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93363
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 21:51:41 +0000 (21:51 +0000)]
this test requires SSE, thanks to jyasskin for pointing this out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93360
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 21:31:39 +0000 (21:31 +0000)]
makeNameProper is now private!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93357
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 21:29:21 +0000 (21:29 +0000)]
fix ELF section mangling stuff for weak symbols to not use
obsolete Mangler interfaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93356
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Wed, 13 Jan 2010 21:25:04 +0000 (21:25 +0000)]
Fix comment typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93355
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 21:21:29 +0000 (21:21 +0000)]
tidy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93352
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 21:12:34 +0000 (21:12 +0000)]
reduce duplicate mangling logic by using MCSymbol::printMangledName.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93351
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 21:09:59 +0000 (21:09 +0000)]
expose a static function as a static method on the MCSymbol class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93350
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Wed, 13 Jan 2010 21:00:26 +0000 (21:00 +0000)]
Fixed a couple of places for Thumb MOV where encoding bits are underspecified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93349
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 13 Jan 2010 19:54:39 +0000 (19:54 +0000)]
Fix pasto
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93342
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 19:54:07 +0000 (19:54 +0000)]
stop the CBE from using deprecated Mangler stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93341
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Wed, 13 Jan 2010 19:37:33 +0000 (19:37 +0000)]
Write function-local metadata as a metadata subblock of a funciton block
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93339
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Wed, 13 Jan 2010 19:36:16 +0000 (19:36 +0000)]
Enumerate function-local metadata (and its types and operands) only during function-incorporation, global metadata continues to be enumerated during creation of ValueEnumerator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93338
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Wed, 13 Jan 2010 19:34:08 +0000 (19:34 +0000)]
Parse function-local metadata inside function blocks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93337
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 19:19:17 +0000 (19:19 +0000)]
Use the GV version of getNameWithPrefix in TargetLoweringObjectFileCOFF::
SelectSectionForGlobal, unbreaking weak globals with no-name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93336
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 13 Jan 2010 19:16:39 +0000 (19:16 +0000)]
Commit some changes I had managed to lose last night while refactoring the code. Avoid change use of PHI instructions because it's not legal to insert any instructions before them.
This fixes PR6027.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93335
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 19:13:16 +0000 (19:13 +0000)]
just finish MCizing FnStubInfo which cleans it up and simplifies it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93334
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 19:05:36 +0000 (19:05 +0000)]
don't call getNameWithPrefix repeatedly and unnecesarily.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93333
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 19:00:57 +0000 (19:00 +0000)]
properly use MCSymbol to print the strings aquired from getNameWithPrefix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93332
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 13 Jan 2010 12:45:23 +0000 (12:45 +0000)]
Introduce Twine::toStringRef, a variant of toVector which avoids the copy if the
twine can be represented as a single StringRef. Use the new methode to simplify
some twine users.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93317
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 13 Jan 2010 08:45:40 +0000 (08:45 +0000)]
Re-enable extension optimization pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93313
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 08:08:33 +0000 (08:08 +0000)]
upgrade and MC'ize a few uses of makeNameProper.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93310
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 08:04:24 +0000 (08:04 +0000)]
MC'ize this a bit and upgrade APIs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93309
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 08:02:14 +0000 (08:02 +0000)]
add a fixme, ELF MCSection isn't quite right and weak unnamed globals are broken
on linux (even though they are pointless, they shouldn't ICE).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93308
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 13 Jan 2010 08:01:32 +0000 (08:01 +0000)]
For now, avoid issuing extract_subreg to reuse lower 8-bit, it's not safe in 32-bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93307
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 13 Jan 2010 07:59:13 +0000 (07:59 +0000)]
Add comment; refactor; avoid pulling in DT if it's not used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93306
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 07:56:59 +0000 (07:56 +0000)]
eliminate some uses of Mangler::makeNameProper.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93305
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 07:50:21 +0000 (07:50 +0000)]
don't add the \1 to the name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93304
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 07:30:49 +0000 (07:30 +0000)]
remove uses of deprecated functions, this generates slightly
different BlockAddress labels, but nothing semantically important.
Add a FIXME that BlockAddress codegen is broken if the LLVM BB has
an empty name (e.g. strip was run).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93303
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 07:16:53 +0000 (07:16 +0000)]
use the new form of getNameWithPrefix, not makeNameProper.
Among other things, this would do very weird things if the
basic block name had (e.g.) a space in it on darwin:
makeNameProper would add quotes, then the mcsymbol would
escape the quotes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93302
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 07:12:06 +0000 (07:12 +0000)]
add new isSingleStringRef()/getSingleStringRef() methods to twine,
and use them to avoid a copy of a string in getNameWithPrefix in
the common case. It seems like Value::setName and other places
should use this as well?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93301
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 07:01:09 +0000 (07:01 +0000)]
ugh, my last patch just sped up a method and changed all the clients
that I want to completely eliminate. Add fixme's so I remember this
in the future, and add the missing helper that they should be upgraded
to use instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93300
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 06:38:18 +0000 (06:38 +0000)]
change Mangler::makeNameProper to return its result in a SmallVector
instead of returning it in an std::string. Based on this change:
1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef
2. Change a bunch of targets to call makeNameProper with a smallstring,
making several of them *much* more efficient.
3. Rewrite Mangler::makeNameProper to not build names and then prepend
prefixes, not use temporary std::strings, and to avoid other crimes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93298
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 05:02:57 +0000 (05:02 +0000)]
my mistake, Mangler::makeNameProper wants to take a twine, not a stringref!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93296
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 04:55:33 +0000 (04:55 +0000)]
change makeNameProper to take a stringref instead of std::string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93295
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 04:50:20 +0000 (04:50 +0000)]
give StringRef a const_iterator member.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93294
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 04:39:46 +0000 (04:39 +0000)]
fix assert in AsmPrinter::EmitGlobalConstantLargeInt to match reality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93293
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 04:38:16 +0000 (04:38 +0000)]
reduce nesting and code duplication in AsmPrinter::EmitGlobalConstantLargeInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93292
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 04:34:19 +0000 (04:34 +0000)]
reduce indentation and add a fast-path to EmitGlobalConstant for 8-byte
integers on 64-bit systems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93291
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Jan 2010 04:29:19 +0000 (04:29 +0000)]
reduce indentation and use early exits in AsmPrinter::EmitConstantValueOnly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93290
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Wed, 13 Jan 2010 03:18:30 +0000 (03:18 +0000)]
Revert 93270 pending investigation of how stray non-constant values end up in ValueEnumerator's ValueList during WriteConstants()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93289
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 13 Jan 2010 01:51:43 +0000 (01:51 +0000)]
Disable opt-ext pass to unbreak the build for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93286
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 13 Jan 2010 01:43:20 +0000 (01:43 +0000)]
Remove debug option I accidentally left in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93285
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 13 Jan 2010 01:39:38 +0000 (01:39 +0000)]
Fix a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93284
91177308-0d34-0410-b5e6-
96231b3b80d8