Chris Lattner [Fri, 1 Oct 2010 06:54:02 +0000 (06:54 +0000)]
fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115300
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Oct 2010 06:34:49 +0000 (06:34 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115297
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Oct 2010 05:51:02 +0000 (05:51 +0000)]
fix PR8267 - Instcombine shouldn't optimizer away volatile memcpy's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115296
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Oct 2010 05:47:16 +0000 (05:47 +0000)]
upgrade this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115295
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Oct 2010 05:36:09 +0000 (05:36 +0000)]
fix rdar://
8494845 + PR8244 - a miscompile exposed by my patch in r101350
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115294
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 1 Oct 2010 05:08:18 +0000 (05:08 +0000)]
One more +sse2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115293
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Oct 2010 04:32:20 +0000 (04:32 +0000)]
move X86 subdir up a level
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115292
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 1 Oct 2010 04:17:55 +0000 (04:17 +0000)]
Mark all these as needing SSE2. Should fix PPC and
maybe even Linux.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115291
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 1 Oct 2010 01:07:02 +0000 (01:07 +0000)]
Fix pasto.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115261
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 1 Oct 2010 00:59:21 +0000 (00:59 +0000)]
Disable these tests for now; it's not obvious why they fail on Linux.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115257
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 1 Oct 2010 00:48:59 +0000 (00:48 +0000)]
Add some doc for the x86mmx type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115255
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 1 Oct 2010 00:21:24 +0000 (00:21 +0000)]
Attempt to outwit overly smart compiler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115251
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 1 Oct 2010 00:16:17 +0000 (00:16 +0000)]
Make test not sensitive to register choice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115250
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 1 Oct 2010 00:00:11 +0000 (00:00 +0000)]
Implement double return values in calls. Fixes
SingleSource/Regression/C/casts.c.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115246
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 30 Sep 2010 23:57:10 +0000 (23:57 +0000)]
Massive rewrite of MMX:
The x86_mmx type is used for MMX intrinsics, parameters and
return values where these use MMX registers, and is also
supported in load, store, and bitcast.
Only the above operations generate MMX instructions, and optimizations
do not operate on or produce MMX intrinsics.
MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into
smaller pieces. Optimizations may occur on these forms and the
result casted back to x86_mmx, provided the result feeds into a
previous existing x86_mmx operation.
The point of all this is prevent optimizations from introducing
MMX operations, which is unsafe due to the EMMS problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115243
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 30 Sep 2010 23:56:49 +0000 (23:56 +0000)]
Add an explicit initialization to work around what appears to be a valgrind
false positive, at least on Darwin. I haven't filed this, but you can feel free.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115242
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 30 Sep 2010 23:48:38 +0000 (23:48 +0000)]
Temporarily add a flag to make it easier to compare the new-style ARM if
conversion heuristics to the old-style ones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115239
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 30 Sep 2010 23:40:25 +0000 (23:40 +0000)]
Clean up asm writer usage for x86 and msp430 to flag that the writer should
use MC instructions in the printInstruction() method via the tablegen flag
for it rather than a #define prior to including the autogenerated bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115238
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 30 Sep 2010 22:34:19 +0000 (22:34 +0000)]
Movement and cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115225
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Thu, 30 Sep 2010 22:02:06 +0000 (22:02 +0000)]
test/CodeGen/X86/sibcall.ll: Add explicit triplets and remove XFAIL: apple-darwin8.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115215
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 30 Sep 2010 22:01:50 +0000 (22:01 +0000)]
Comments about operand cycles and pipeline forwarding pathes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115214
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 30 Sep 2010 21:04:13 +0000 (21:04 +0000)]
Pacify a noisy compiler, and sink this variable declaration closer to its uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115206
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 30 Sep 2010 20:53:04 +0000 (20:53 +0000)]
We do want to allow LoadPRE to perform LICM-like transformations: we already consider PHI nodes to be negligible for
code size (making this transform code size neutral), and it allows us to hoist values out of loops, which is always
a good thing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115205
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 30 Sep 2010 20:51:52 +0000 (20:51 +0000)]
Try again to disable critical edge splitting in CodeGenPrepare.
The bug that broke i386 linux has been fixed in r115191.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115204
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 30 Sep 2010 20:49:44 +0000 (20:49 +0000)]
Start of generalized call support for ARM fast isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115203
91177308-0d34-0410-b5e6-
96231b3b80d8
Talin [Thu, 30 Sep 2010 20:23:47 +0000 (20:23 +0000)]
Allow llvm.gcroot to work with non-pointer allocas.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115198
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 30 Sep 2010 20:18:35 +0000 (20:18 +0000)]
Factor some logic into ShouldRelocOnSymbol. This simplifies the code and
fixes some cases where we were producing relocations with at symbol that
should use a section instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115194
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 30 Sep 2010 19:53:58 +0000 (19:53 +0000)]
Nuke a few more unused asm strings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115193
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 30 Sep 2010 19:44:31 +0000 (19:44 +0000)]
When isel is emitting instructions for an x86 target without CMOV, the CFG is
edited during emission.
If the basic block ends in a switch that gets lowered to a jump table, any
phis at the default edge were getting updated wrong. The jump table data
structure keeps a pointer to the header blocks that wasn't getting updated
after the MBB is split.
This bug was exposed on 32-bit Linux when disabling critical edge splitting in
codegen prepare.
The fix is to uipdate stale MBB pointers whenever a block is split during
emission.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115191
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 30 Sep 2010 17:45:51 +0000 (17:45 +0000)]
Move getPointerSize() to the base class since it's not dependent on MachO
vs. ELF
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115180
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 30 Sep 2010 17:37:34 +0000 (17:37 +0000)]
Flesh out the dragonegg section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115179
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 17:29:05 +0000 (17:29 +0000)]
more cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115178
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 17:24:05 +0000 (17:24 +0000)]
merge and clean up tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115177
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 30 Sep 2010 17:19:17 +0000 (17:19 +0000)]
Remove extraneous ';'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115176
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 17:18:22 +0000 (17:18 +0000)]
merge two tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115175
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 17:16:49 +0000 (17:16 +0000)]
rename test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115174
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Thu, 30 Sep 2010 17:16:09 +0000 (17:16 +0000)]
Did my commit for the last patch for the .loc directory from the wrong place and
missed a bunch of files. Here the rest. Sorry about that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115173
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 17:15:42 +0000 (17:15 +0000)]
generalize test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115172
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 17:14:55 +0000 (17:14 +0000)]
rename test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115171
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 17:14:30 +0000 (17:14 +0000)]
merge two tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115170
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 17:11:29 +0000 (17:11 +0000)]
preemptively add the rest of the non-n fpstack instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115168
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 17:05:37 +0000 (17:05 +0000)]
merge two tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115165
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 17:04:59 +0000 (17:04 +0000)]
fix this to not be completely broken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115164
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 17:03:20 +0000 (17:03 +0000)]
update, unxfail, fix bogus encodings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115163
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 17:00:53 +0000 (17:00 +0000)]
update and unxfail
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115162
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 16:59:28 +0000 (16:59 +0000)]
unxfail this by fixing syntactic differences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115161
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 30 Sep 2010 16:56:53 +0000 (16:56 +0000)]
The asm strings are never used at all, so just nuke 'em entirely.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115160
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Thu, 30 Sep 2010 16:52:03 +0000 (16:52 +0000)]
This is the last major patch to implement support for the .loc directive
and output the dwarf line number tables. This contains the code to emit and
encode the dwarf line tables from the previously gathered information in the
MCLineSection objects. This contains all the details to encode the line and
address deltas into the dwarf line table.
To do this an MCDwarfLineAddrFragment has been added.
Also this moves the interface code out of Mach-O streamer into
MCDwarf so it should be useable by other object file formats.
There is now one call to be made from an MCObjectStreamer
EmitInstruction() method:
MCLineEntry::Make(this, getCurrentSection());
to create a line entry after each instruction is assembled.
And one call call to be made from an MCObjectStreamer Finish() method:
MCDwarfFileTable::Emit(this, DwarfLineSection);
when getContext().hasDwarfFiles() is true and is passed a object file specific
MCSection where to emit the dwarf file and the line tables.
This appears to now be correct for 32-bit targets, at least x86. But the
relocation entries for 64-bit Darwin needs some further work which is next
up to work on. So for now the 64-bit Mach-O target does not output the
dwarf file and line tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115157
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 16:42:53 +0000 (16:42 +0000)]
implement support for finit, PR8258
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115156
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Thu, 30 Sep 2010 16:42:21 +0000 (16:42 +0000)]
Changes EvaluateAsAbsolute() to return the "current value" of the expression
if we are given a Layout object, even in cases when the value is not fixed.
This will be needed by the final patch for the dwarf .loc support to size a
new MCDwarf fragment needed to build and emit dwarf line number tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115155
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 16:39:29 +0000 (16:39 +0000)]
add support for fstcw, PR8259
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115154
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Thu, 30 Sep 2010 16:38:07 +0000 (16:38 +0000)]
Adds getPointerSize() to the AsmBackend which will be needed by the final patch
for the dwarf .loc support to emit dwarf line number tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115153
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 16:31:33 +0000 (16:31 +0000)]
checkpoint notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115152
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 30 Sep 2010 16:18:28 +0000 (16:18 +0000)]
Grow BumpPtrAllocator's slab size dynamically if we allocated many slabs. This
reduces the amount of malloc calls and may reduce memory overhead.
Some numbers:
ASTContext stats, clang -cc1 -disable-free -fsyntax-only Cocoa_h.m
without dynamic growth | with dynamic growth
Number of memory regions: 3158 | Number of memory regions: 432
Bytes used:
12333185 | Bytes used:
12333185
Bytes allocated:
12935168 | Bytes allocated:
12800000
Bytes wasted: 601983 (includes alignment, etc) | Bytes wasted: 466815 (includes alignment, etc)
ASTContext stats, clang -cc1 -disable-free -fsyntax-only on clang's ASTReader.cpp
without dynamic growth | with dynamic growth
Number of memory regions: 10987 | Number of memory regions: 551
Bytes used:
42910356 | Bytes used:
42910356
Bytes allocated:
45002752 | Bytes allocated:
44711936
Bytes wasted:
2092396 (includes alignment, etc) | Bytes wasted:
1801580 (includes alignment, etc)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115151
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 30 Sep 2010 15:25:22 +0000 (15:25 +0000)]
80 column fix
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115149
91177308-0d34-0410-b5e6-
96231b3b80d8
Jason W Kim [Thu, 30 Sep 2010 14:58:19 +0000 (14:58 +0000)]
Fix two tiny issues (ARM does not need COFF) and comment sanity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115147
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 30 Sep 2010 11:21:59 +0000 (11:21 +0000)]
Tighten up prototype verification of strchr and strrchr to avoid a crash in the very unlikely case that someone passes an integer > i64 to strchr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115144
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 30 Sep 2010 10:59:51 +0000 (10:59 +0000)]
Silence a GCC warning about not handling all flags in this switch, we
specifically assert on unexpected flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115143
91177308-0d34-0410-b5e6-
96231b3b80d8
Jan Wen Voung [Thu, 30 Sep 2010 05:59:22 +0000 (05:59 +0000)]
Move logic of determining ELF entsize from the .s printer to initialization
time. That way, the EntrySize field is initialized for other code paths,
namely, the .ll -> .o code path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115141
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 30 Sep 2010 04:22:07 +0000 (04:22 +0000)]
Add another test that now passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115137
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 30 Sep 2010 03:21:00 +0000 (03:21 +0000)]
trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115136
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 30 Sep 2010 03:20:34 +0000 (03:20 +0000)]
Remove misplaced ';'. Make buildbots happy, hopefully.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115135
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 30 Sep 2010 03:11:42 +0000 (03:11 +0000)]
Correctly produce R_X86_64_32 or R_X86_64_32S.
With this patch in
movq $foo, foo(%rip)
foo:
.long foo
We produce a R_X86_64_32S for the first relocation and R_X86_64_32 for the
second one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115134
91177308-0d34-0410-b5e6-
96231b3b80d8
Jason W Kim [Thu, 30 Sep 2010 02:45:56 +0000 (02:45 +0000)]
Tiny patch for proof-of-concept cleanup of ARMAsmPrinter::EmitStartOfAsmFile()
Small test for sanity check of resulting ARM .s file.
Tested against -r115129.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115133
91177308-0d34-0410-b5e6-
96231b3b80d8
Jan Wen Voung [Thu, 30 Sep 2010 02:41:46 +0000 (02:41 +0000)]
Have ELFAsmParser.cpp use the already parsed "Size" (entry size) when
constructing a section. Test for a few cases also included.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115132
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 30 Sep 2010 02:22:20 +0000 (02:22 +0000)]
Make it possible for the MCObjectWriter to decide if a given fixup is fully
resolved or not. Different object files have different restrictions and
different native assemblers have different idiosyncrasies we want to emulate
for now.
Move the existing MachO logic to the new place and implement an ELF one that
gets fixups to globals right.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115131
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 30 Sep 2010 02:18:06 +0000 (02:18 +0000)]
Go ahead and jump!
Now that the MC lowering handles the expansion of the pseudos, kill the horrible
blobs of text.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115130
91177308-0d34-0410-b5e6-
96231b3b80d8
Jason W Kim [Thu, 30 Sep 2010 02:17:26 +0000 (02:17 +0000)]
I added a new file ARMAsmBackend which stubs out in similar ways to
the eqv X86 class.
For now, I split the ELFARMAsmBackend from the DarwinARMAsmBackend
(also mimicking X86)
Tested against -r115126
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115129
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 30 Sep 2010 02:02:22 +0000 (02:02 +0000)]
Now that the pseudos that needed this are all custom lowered, we can go back
to an empty PrintSpecial()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115128
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 30 Sep 2010 01:57:53 +0000 (01:57 +0000)]
Nuke it from orbit. It's the only way to be sure.
(Kill the dead non-MC asm printer for the ARM target.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115127
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 30 Sep 2010 01:29:54 +0000 (01:29 +0000)]
Let a target specify whether it wants an assembly printer to be the MC version
or not. TableGen needs to generate the printInstruction() function as taking
an MCInstr* or a MachineInstr*, depending. Default to the old non-MC
version so that everything not yet using MC continues to just work without
fidding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115126
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 01:12:09 +0000 (01:12 +0000)]
fix incorrect link!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115124
91177308-0d34-0410-b5e6-
96231b3b80d8
Jan Wen Voung [Thu, 30 Sep 2010 01:09:20 +0000 (01:09 +0000)]
Test commit - Deleted some whitespace at the end of a line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115122
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 30 Sep 2010 01:08:25 +0000 (01:08 +0000)]
ARM instruction itinerary fixes:
1. Cortex-a9 8-bit and 16-bit loads / stores AGU cycles are 1 cycle longer than 32-bit ones.
2. Cortex-a9 is out-of-order so model all read cycles as cycle 1.
3. Lots of other random fixes for A8 and A9.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115121
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 30 Sep 2010 00:58:35 +0000 (00:58 +0000)]
Add constant folding for strspn and strcspn to SimplifyLibCalls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115116
91177308-0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Thu, 30 Sep 2010 00:44:58 +0000 (00:44 +0000)]
Revert r114320(move file = copy + delete on Win32). r115040 is a better solution for the Win32 ACCESS_DENIED lit error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115114
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2010 00:34:43 +0000 (00:34 +0000)]
add a bunch of entries for external projects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115112
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 29 Sep 2010 23:52:12 +0000 (23:52 +0000)]
Add strpbrk folding to SimplifyLibCalls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115111
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 29 Sep 2010 23:32:20 +0000 (23:32 +0000)]
Silence compiler warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115107
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 29 Sep 2010 23:31:09 +0000 (23:31 +0000)]
Revert r115099 (adding early jump threading). It's not clear if the benefits are worth the compile time cost.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115106
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 29 Sep 2010 23:11:09 +0000 (23:11 +0000)]
Refactor arm fast isel libcall handling so that pieces can be used
for generic call handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115105
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 29 Sep 2010 23:07:21 +0000 (23:07 +0000)]
Let FE mark a variable as artificial variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115102
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 29 Sep 2010 23:00:29 +0000 (23:00 +0000)]
Noticed by inspection when looking for other cmov bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115100
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 29 Sep 2010 22:57:02 +0000 (22:57 +0000)]
Early CFG simplification can fold conditionals down to selects, which is often a good thing, but it can also
hide jump threading opportunities by turning control flow into data flow. Run an early JumpThreading pass
(adds approximately an additional 1% to optimization time on SPEC), allowing it to get a shot at these cases
first. Fixes <rdar://problem/
8447345>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115099
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 29 Sep 2010 22:42:35 +0000 (22:42 +0000)]
Model Cortex-a9 load to SUB, RSB, ADD, ADC, SBC, RSC, CMN, MVN, or CMP
pipeline forwarding path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115098
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 29 Sep 2010 22:38:50 +0000 (22:38 +0000)]
Silence msvc warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115097
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 29 Sep 2010 22:32:50 +0000 (22:32 +0000)]
trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115096
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 29 Sep 2010 22:29:12 +0000 (22:29 +0000)]
Simplify the loop in StrChrOptimizer. FileCheckize test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115095
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 29 Sep 2010 22:24:45 +0000 (22:24 +0000)]
Add a convenience variable so I'm not chasing all over looking for
a context.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115094
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 29 Sep 2010 21:50:51 +0000 (21:50 +0000)]
Teach SimplifyLibCalls how to optimize strrchr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115091
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 29 Sep 2010 21:44:16 +0000 (21:44 +0000)]
Add support to let FE encode method access specifier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115089
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 29 Sep 2010 21:04:46 +0000 (21:04 +0000)]
Generalize DISubprogram element to encode various flags instead of just one boolean for isArtificial.
This is a backword compatible change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115084
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 29 Sep 2010 20:57:19 +0000 (20:57 +0000)]
UnreachableBlockElim could incorrectly return false when it had not modified the CFG, but HAD modified some PHI nodes. Fixes PR8174.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115083
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 29 Sep 2010 20:34:41 +0000 (20:34 +0000)]
Fix PR8247: JumpThreading can cause a block to become unreachable while still having predecessor, if it is part of a self-loop.
Because of this, we cannot use the Simplify* APIs, as they can assert-fail on unreachable code. Since it's not easy to determine
if a given threading will cause a block to become unreachable, simply defer simplifying simplification to later InstCombine and/or
DCE passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115082
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 29 Sep 2010 20:09:55 +0000 (20:09 +0000)]
Convert a bunch of uses of 'bytecode' into 'bitcode'. This
is not everything, but the remaining cases are less trivial.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115080
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 29 Sep 2010 19:39:50 +0000 (19:39 +0000)]
Remove PointerTracking from cmakelists …
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115076
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 29 Sep 2010 19:30:17 +0000 (19:30 +0000)]
GetSourceVersion: Strip off svninfo extra markers, which aren't really part of the version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115074
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 29 Sep 2010 19:20:35 +0000 (19:20 +0000)]
Remove PointerTracking tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115072
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 29 Sep 2010 19:08:08 +0000 (19:08 +0000)]
Assign DW_ACCESS_public accessibility attribute to members by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115067
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 29 Sep 2010 19:03:54 +0000 (19:03 +0000)]
Add specializations of addrmode2 that allow differentiating those forms
which require the use of the shifter-operand. This will be used to split
the ldr/str instructions such that those versions needing the shifter operand
can get a different scheduling itenerary, as in some cases, the use of the
shifter can cause different scheduling than the simpler forms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115066
91177308-0d34-0410-b5e6-
96231b3b80d8