Talin
d6b8c10155
DenseMap::find_as() and unit tests.
...
llvm-svn: 149229
2012-01-30 06:55:43 +00:00
Chris Lattner
e087cbc056
First step of flipping on ConstantDataSequential: enable ConstantDataVector
...
to be formed whenever ConstantVector::get is used.
llvm-svn: 149226
2012-01-30 06:21:21 +00:00
Chris Lattner
95a4f58d65
when verbose asm is on, print integers in ConstantDataSequentials just
...
like normal integers.
llvm-svn: 149223
2012-01-30 05:55:11 +00:00
Chris Lattner
7bce4c0fde
don't lose tail padding on ConstantDataAggregate vec3's.
...
llvm-svn: 149222
2012-01-30 05:49:43 +00:00
Chris Lattner
aeafae8c79
Fix ConstantFoldShuffleVectorInstruction to properly handle the case
...
when the result type has a different # elements than the input vectors.
llvm-svn: 149221
2012-01-30 05:34:13 +00:00
NAKAMURA Takumi
4776d14929
CMake: Promote the testing targets out of folders on IDE.
...
llvm-svn: 149220
2012-01-30 03:15:47 +00:00
NAKAMURA Takumi
c0d73fdf1e
CMake: Add the folder "Tablegenning" on llvm-tblgen targets.
...
llvm-svn: 149219
2012-01-30 03:01:03 +00:00
Chris Lattner
bd514b7976
initialize the Next field to null
...
llvm-svn: 149217
2012-01-30 01:17:43 +00:00
Craig Topper
9aabdda961
Move some XOP patterns into instruction definition. Replae VPCMOV intrinsic patterns with custom lowering to a target specific nodes.
...
llvm-svn: 149216
2012-01-30 01:10:15 +00:00
Chris Lattner
d52c923a50
Add bitcode reader and writer support for ConstantDataAggregate, which
...
should be feature complete now. Lets see if it works.
llvm-svn: 149215
2012-01-30 00:51:16 +00:00
Chandler Carruth
0a86383339
Cleanup the organization of some methods in llvm::Triple and provide
...
a better doxyment group for convenience predicates.
llvm-svn: 149211
2012-01-29 23:09:12 +00:00
Douglas Gregor
1b572cae6f
Move Clang's file-level locking facility over to LLVM's support
...
library, since it doesn't really have anything to do with Clang.
llvm-svn: 149203
2012-01-29 20:15:10 +00:00
Anton Korobeynikov
8610339991
Cleanups for EABI standard functions
...
llvm-svn: 149195
2012-01-29 09:11:50 +00:00
Anton Korobeynikov
37494ab91a
Use base AAPCS for varargs functions even for AAPCS-VFP CC
...
llvm-svn: 149194
2012-01-29 09:06:09 +00:00
Jakob Stoklund Olesen
6bf068351e
Fix some scavenger performance issues.
...
- Don't call malloc+free in the very hot forward().
- Don't call isTiedToDefOperand().
- Don't create BitVector temporaries.
- Merge DeadRegs into KillRegs.
- Eliminate the early clobber checks, they were irrelevant to scavenging.
- Remove unnecessary code from -Asserts builds.
This speeds up ARM PEI by 3.4x and overall llc -O0 codegen time by 11%.
llvm-svn: 149189
2012-01-29 01:29:28 +00:00
Jakob Stoklund Olesen
cc16458309
Avoid creating BitVector temporaries.
...
llvm-svn: 149188
2012-01-29 01:29:25 +00:00
Jakob Stoklund Olesen
033045b6da
Add a BitVector::reset(BitVector&) method.
...
The alternative LHS &= ~RHS is way too slow because it creates a
temporary that calls malloc/free.
llvm-svn: 149187
2012-01-29 01:29:22 +00:00
Nick Lewycky
8fba23af8b
Fix typo.
...
llvm-svn: 149185
2012-01-28 23:33:44 +00:00
Bob Wilson
157561c941
Add a note about a potential optimization for clz/ctz patterns for ARM
...
(and other targets).
llvm-svn: 149182
2012-01-28 18:30:07 +00:00
James Molloy
b586b7c9c7
Ensure .AliasedSymbol() is called on all uses of getSymbol(). Affects ARM and MIPS ELF backends.
...
Fixes PR11877
llvm-svn: 149180
2012-01-28 15:58:32 +00:00
Benjamin Kramer
d10dc94cac
Silence GCC's -Wreturn-type warning.
...
llvm-svn: 149179
2012-01-28 15:28:41 +00:00
Rafael Espindola
c74f450f77
Small improvement to the recursion detection logic from the previous commit.
...
llvm-svn: 149175
2012-01-28 06:22:14 +00:00
Rafael Espindola
82e15e4544
Handle recursive variable definitions directly. This gives us better error
...
messages and allows us to fix PR11865.
llvm-svn: 149174
2012-01-28 05:57:00 +00:00
Kostya Serebryany
0a789a0d8c
[asan] correctly use ConstantExpr::getGetElementPtr. Catch by NAKAMURA Takumi
...
llvm-svn: 149172
2012-01-28 04:27:16 +00:00
Bill Wendling
062f06ea0a
Reapply r149159 with a fix to add to a PHI node with a non-null parent.
...
llvm-svn: 149164
2012-01-28 01:17:56 +00:00
Lang Hames
064e6dfeca
Remove code that adds live ranges for dead defs. It seems to be breaking things.
...
llvm-svn: 149163
2012-01-28 01:17:01 +00:00
Bill Wendling
8ef69f989c
Revert r149159 until I can fix tests.
...
llvm-svn: 149162
2012-01-28 01:10:01 +00:00
Bill Wendling
16ac64c902
Don't always create a separate block for the call to _Unwind_Resume.
...
Sometimes there is only one 'resume' instruction per function. In those
situations, we don't need a separate block for the call to _Unwind_Resume. In
fact, it adds a lot of overhead to code-gen if we do that -- especially at -O0.
If we have a single 'resume' instruction, just generate the call within that
block.
<rdar://problem/10694814>
llvm-svn: 149159
2012-01-28 00:47:18 +00:00
David Greene
7748b4cf3b
Fix Record Name Reference
...
Get the record name though the init to avoid an assert.
llvm-svn: 149153
2012-01-28 00:03:24 +00:00
Lang Hames
bbf83feb7f
Silence warning about parens for && within ||
...
llvm-svn: 149152
2012-01-27 23:52:25 +00:00
Rafael Espindola
7bddde2b49
Add r149110 back with a fix for when the vector and the int have the same
...
width.
llvm-svn: 149151
2012-01-27 23:33:07 +00:00
David Greene
de918de31c
Remove Deprecated Features
...
Move to a model where we build whatever branches are checked out
in the source directories. This was a bit too smart (and complicated)
in handling details best left to the user and the revision control
system.
In addition, get rid of support for llvm-gcc and building gcc as
these are no longer necessary.
llvm-svn: 149149
2012-01-27 23:01:35 +00:00
Rafael Espindola
7800e62486
Revert r149110 and add a testcase that was crashing since that revision.
...
Unfortunately I also had to disable constant-pool-sharing.ll the code it tests has been
updated to use the IL logic.
llvm-svn: 149148
2012-01-27 22:42:48 +00:00
Lang Hames
e0f0352889
Add a "moveInstr" method to LiveIntervals. This can be used to move instructions
...
around within a basic block while maintaining live-intervals.
Updated ScheduleTopDownLive in MachineScheduler.cpp to use the moveInstr API
when reordering MIs.
llvm-svn: 149147
2012-01-27 22:36:19 +00:00
Lang Hames
b2a26bb835
Backing out ill-considered 'refactor'.
...
llvm-svn: 149146
2012-01-27 21:43:32 +00:00
Lang Hames
e66bae398d
Move some duplicate loops in the coalescer into their own function.
...
llvm-svn: 149144
2012-01-27 19:58:14 +00:00
Devang Patel
e4725ba181
Intel Syntax: Parse mem operand with seg reg. QWORD PTR FS:[320]
...
llvm-svn: 149142
2012-01-27 19:48:28 +00:00
Jim Grosbach
86e3cd33a1
Fix typo.
...
llvm-svn: 149137
2012-01-27 18:35:03 +00:00
Craig Topper
9259da4826
Move some patterns back near their instructions and use AddedComplexity to fix priority. Merge some patterns into their instruction definition.
...
llvm-svn: 149122
2012-01-27 07:09:40 +00:00
Lang Hames
728d37bf16
Physreg dead defs should be handled too.
...
llvm-svn: 149118
2012-01-27 03:20:42 +00:00
Chris Lattner
bfb2b161d0
smallvectorize.
...
llvm-svn: 149117
2012-01-27 03:15:49 +00:00
Chris Lattner
466ff4b5f1
continue making the world safe for ConstantDataVector. At this point,
...
we should (theoretically optimize and codegen ConstantDataVector as well
as ConstantVector.
llvm-svn: 149116
2012-01-27 03:08:05 +00:00
Matt Beaumont-Gay
f1e0eb546a
Unix line endings
...
llvm-svn: 149115
2012-01-27 02:31:29 +00:00
Bill Wendling
8ac1e67396
Place the GEP instructions nearer to the instructions which use them.
...
GEP instructions are there for the compiler and shouldn't really output much
code (if any at all). When a GEP is stored in the entry block, Fast ISel (for
one) will not know that it could fold it into further uses. For instance, inside
of the EH handling code. This results in a lot of unnecessary spills and loads
which bloat code and slows down pretty much everything.
<rdar://problem/10694814>
llvm-svn: 149114
2012-01-27 02:02:24 +00:00
Chris Lattner
52e0244bed
make sure the file's matching header is #include'd first.
...
llvm-svn: 149113
2012-01-27 01:47:28 +00:00
Chris Lattner
67b57ec4e3
Rewrite CanShareConstantPoolEntry to be implemented in terms of the
...
mid-level constant folding APIs instead of doing its own analysis.
This makes it more general (e.g. can now share a <2 x i64> with a
<4 x i32>) and avoid duplicating a bunch of logic.
llvm-svn: 149111
2012-01-27 01:46:00 +00:00
Chris Lattner
929f66cdfa
enhance constant folding to be able to constant fold bitcast of
...
ConstantVector's to integer type.
llvm-svn: 149110
2012-01-27 01:44:03 +00:00
Jim Grosbach
e6ac20aadf
Keep source location information for X86 MCFixup's.
...
llvm-svn: 149106
2012-01-27 00:51:27 +00:00
Jim Grosbach
4492fd6b9f
Source information in 'expected relocatable expression' diagnostic.
...
llvm-svn: 149105
2012-01-27 00:51:23 +00:00
Jim Grosbach
ef5d3dc085
Better user diagnostics for more ARM MachO relocation errors.
...
llvm-svn: 149102
2012-01-27 00:37:12 +00:00