Evan Cheng
b4c6a34415
Re-commit 127368 and 127371. They are exonerated.
...
llvm-svn: 127380
2011-03-10 00:16:32 +00:00
Evan Cheng
d4b3f8e009
Revert 127368 and 127371 for now.
...
llvm-svn: 127376
2011-03-09 23:53:17 +00:00
Evan Cheng
a319876559
Restore the default implementation of getCrossCopyRegClass: no need for cross-regclass copies.
...
llvm-svn: 127371
2011-03-09 23:15:40 +00:00
Daniel Dunbar
66559ba79a
Revert "Re-enable test and hope to silence the buildbots", still broken.
...
llvm-svn: 127369
2011-03-09 22:48:46 +00:00
Evan Cheng
ca9a936332
Change the definition of TargetRegisterInfo::getCrossCopyRegClass to be more
...
flexible.
If it returns a register class that's different from the input, then that's the
register class used for cross-register class copies.
If it returns a register class that's the same as the input, then no cross-
register class copies are needed (normal copies would do).
If it returns null, then it's not at all possible to copy registers of the
specified register class.
llvm-svn: 127368
2011-03-09 22:47:38 +00:00
Benjamin Kramer
1885d21700
Fix mistyped CHECK lines.
...
llvm-svn: 127366
2011-03-09 22:07:31 +00:00
Benjamin Kramer
801c9afd94
Fix a pasto that broke all x86_64-elf targets.
...
llvm-svn: 127365
2011-03-09 22:07:13 +00:00
Stuart Hastings
3d8584f60e
Tweak test to work on Linux.
...
llvm-svn: 127364
2011-03-09 21:35:10 +00:00
Stuart Hastings
9ba3013ed9
Disable this test temporarily to reduce BuildBot complaints.
...
llvm-svn: 127363
2011-03-09 21:33:47 +00:00
Devang Patel
13f8c7d48e
Preserve line number information while simplifying libcalls.
...
llvm-svn: 127362
2011-03-09 21:27:52 +00:00
Stuart Hastings
9955e2f912
X86 byval copies no longer always_inline. <rdar://problem/8706628>
...
llvm-svn: 127359
2011-03-09 21:10:30 +00:00
Bruno Cardoso Lopes
6492ef1237
Add a testcase for the addc improvements introduced some commits ago. Patch by Akira Hatanaka
...
llvm-svn: 127358
2011-03-09 21:05:32 +00:00
Bruno Cardoso Lopes
961908982f
Re-enable test and hope to silence the buildbots
...
llvm-svn: 127357
2011-03-09 21:00:16 +00:00
Bruno Cardoso Lopes
bd2f81c87b
try to make o32 cc tests less specific to silence some buildbots. The test isn't enabled yet, this is will be done in a subsequent commit. Patch by Akira Hatanaka.
...
llvm-svn: 127356
2011-03-09 20:59:05 +00:00
Johnny Chen
9363d41f14
LLVM combines the offset mode of A8.6.199 A1 & A2 into STRBT.
...
The insufficient encoding information of the combined instruction confuses the decoder wrt
UQADD16. Add extra logic to recover from that.
Fixed an assert reported by Sean Callanan
llvm-svn: 127354
2011-03-09 20:01:14 +00:00
Eric Christopher
787ba0bf9b
Make these options hidden to reduce the amount of text -help puts on the
...
command line, they'll still be seen with -help-hidden.
llvm-svn: 127353
2011-03-09 19:46:51 +00:00
Devang Patel
a10794ab7b
These llvm.dbg.* constants are not used anymore.
...
llvm-svn: 127352
2011-03-09 19:41:33 +00:00
Jakob Stoklund Olesen
d0db705256
Make physreg coalescing independent on the number of uses of the virtual register.
...
The damage done by physreg coalescing only depends on the number of instructions
the extended physreg live range covers. This fixes PR9438.
The heuristic is still luck-based, and physreg coalescing really should be
disabled completely. We need a register allocator with better hinting support
before that is possible.
Convert a test to FileCheck and force spilling by inserting an extra call. The
previous spilling behavior was dependent on misguided physreg coalescing
decisions.
llvm-svn: 127351
2011-03-09 19:27:06 +00:00
Jakob Stoklund Olesen
456e104c13
Delete a test case that is very sensitive to coalescer behavior.
...
The test is derived from an old miscompilation of
MultiSource/Benchmarks/VersaBench/8b10b which is run regularly, so we are not
losing coverage.
llvm-svn: 127350
2011-03-09 19:27:02 +00:00
Bruno Cardoso Lopes
048ffabe78
Improve varags handling, with testcases. Patch by Sasa Stankovic
...
llvm-svn: 127349
2011-03-09 19:22:22 +00:00
Andrew Trick
0f6d098bd1
This test case should work with list-ilp or list-burr.
...
llvm-svn: 127348
2011-03-09 19:17:10 +00:00
Andrew Trick
072ed2ee0d
Improve pre-RA-sched register pressure tracking for duplicate operands.
...
This helps cases like 2008-07-19-movups-spills.ll, but doesn't have an obvious impact on benchmarks
llvm-svn: 127347
2011-03-09 19:12:43 +00:00
Jan Sjödin
6348dc0566
Add createELFObjectTargetWriter method to TargetAsmBackend, which enables construction of non-standard ELFObjectWriters that can be used in MCJIT.
...
llvm-svn: 127346
2011-03-09 18:44:41 +00:00
Jan Sjödin
531f9d1241
Missing file from previous commmit (127341) for InitializeTargetAsmParser function.
...
llvm-svn: 127345
2011-03-09 18:36:40 +00:00
Jan Sjödin
745fc89f62
Add constructors to MCElfStreamer and MCObjectStreamer to take an extra MCAssembler * argument.
...
llvm-svn: 127343
2011-03-09 17:33:05 +00:00
Andrew Trick
2afa325811
When SCEV can determine the loop test is X < X, set ExactBECount=0.
...
When ExactBECount is a constant, use it for MaxBECount.
When MaxBECount cannot be computed, replace it with ExactBECount.
Fixes PR9424.
llvm-svn: 127342
2011-03-09 17:29:58 +00:00
Jan Sjödin
27e07c32c6
Add InitializeNativeAsmParser function.
...
llvm-svn: 127341
2011-03-09 17:25:46 +00:00
Andrew Trick
2a3b71684a
whitespace
...
llvm-svn: 127340
2011-03-09 17:23:39 +00:00
Benjamin Kramer
b2e4d84305
Fix typo, make helper static.
...
llvm-svn: 127335
2011-03-09 16:19:12 +00:00
Oscar Fuentes
e503506048
Process some link components that map to other expandable components
...
before the main loop. This is necessary because the loop ignores the
items added to `link_components' after it is entered.
llvm-svn: 127333
2011-03-09 14:44:46 +00:00
Benjamin Kramer
84fccb64c3
Remove unused virtual dtor.
...
llvm-svn: 127331
2011-03-09 14:20:28 +00:00
NAKAMURA Takumi
58d1f93b03
Target/X86: Tweak va_arg for Win64 not to miss taking va_start when number of fixed args > 4.
...
llvm-svn: 127328
2011-03-09 11:33:15 +00:00
NAKAMURA Takumi
2035ab2816
Makefile.rules: [PR2928] "make install" may install include files along explicit pattern, not to install CMake's building stuff.
...
llvm-svn: 127325
2011-03-09 09:11:27 +00:00
Nick Lewycky
774647d974
Fix two cases I forgot to update when doing a mental "getSwappedPredicate".
...
Thanks Duncan Sands!
llvm-svn: 127323
2011-03-09 08:20:06 +00:00
Cameron Zwarich
718918b07a
Add a test case for r127320.
...
llvm-svn: 127321
2011-03-09 08:11:02 +00:00
Cameron Zwarich
19f2b3c652
Fix a crasher introduced by r127317 that is seen on the bots when using an
...
alloca as both integer and floating-point vectors of the same size. Bugpoint is
not cooperating with me, but I'll try to find a manual testcase tomorrow.
llvm-svn: 127320
2011-03-09 07:34:11 +00:00
Nick Lewycky
980104d1d6
Add another micro-optimization. Apologies for the lack of refactoring, but I
...
gave up when I realized I couldn't come up with a good name for what the
refactored function would be, to describe what it does.
This is PR9343 test12, which is test3 with arguments reordered. Whoops!
llvm-svn: 127318
2011-03-09 06:26:03 +00:00
Cameron Zwarich
3b649f4d01
Add support to scalar replacement for partial vector accesses of an alloca, e.g.
...
a union of a float, <2 x float>, and <4 x float>. This mostly comes up with the
use of vector intrinsics, especially in NEON when programmers know the layout of
the register file. This enables codegen to eliminate a lot of the subregister
traffic it would otherwise generate.
This commit only enables this for a small number of floating-point cases, but a
lot more integer cases. I assume this is okay for all ports, but I did not do
extensive testing of the quality of code involving i512 vectors and the like. If
there is a use case where this generates worse code than before, let me know and
we can scale it back.
This fixes <rdar://problem/9036264>.
llvm-svn: 127317
2011-03-09 05:43:05 +00:00
Cameron Zwarich
43a241fa06
Move vector type merging to a separate function in preparation for it getting
...
more complicated.
llvm-svn: 127316
2011-03-09 05:43:01 +00:00
Stuart Hastings
72ee53ef6a
Add a RUN line to the test case to make it functional. <rdar://problem/9055247>
...
llvm-svn: 127312
2011-03-09 04:02:40 +00:00
Matt Beaumont-Gay
df72652fd0
Add a virtual dtor to Delegate to silence -Wnon-virtual-dtor
...
llvm-svn: 127311
2011-03-09 04:02:15 +00:00
Stuart Hastings
d528660759
Test cases for r127309. <rdar://problem/9055247>
...
llvm-svn: 127310
2011-03-09 03:59:52 +00:00
Bill Wendling
5100c00fa6
Build bots hate me.
...
llvm-svn: 127307
2011-03-09 01:37:39 +00:00
Eli Friedman
a81a82dcaf
PR9346: Prevent SimplifyDemandedBits from incorrectly introducing
...
INT_MIN % -1.
llvm-svn: 127306
2011-03-09 01:28:35 +00:00
Bill Wendling
20a6fcabd3
Testcase for r127301.
...
llvm-svn: 127304
2011-03-09 01:05:00 +00:00
Jakob Stoklund Olesen
8e089640e0
Add a LiveRangeEdit::Delegate protocol.
...
This will we used for keeping register allocator data structures up to date
while LiveRangeEdit is trimming live intervals.
llvm-svn: 127300
2011-03-09 00:57:29 +00:00
Eli Friedman
aac35b3fbb
PR9420; an instruction before an unreachable is guaranteed not to have any
...
reachable uses, but there still might be uses in dead blocks. Use the
standard solution of replacing all the uses with undef. This is
a rare case because it's very sensitive to phase ordering in SimplifyCFG.
llvm-svn: 127299
2011-03-09 00:48:33 +00:00
Eric Christopher
4fa0f3040d
Fix testcase.
...
llvm-svn: 127298
2011-03-09 00:41:41 +00:00
Bill Wendling
5e57137e87
* Correct encoding for VSRI.
...
* Add tests for VSRI and VSLI.
llvm-svn: 127297
2011-03-09 00:33:17 +00:00
Jakob Stoklund Olesen
06b72e338a
Delete dead code.
...
llvm-svn: 127295
2011-03-09 00:07:39 +00:00
Bill Wendling
a7f303de71
Correct the encoding for VRSRA and VSRA instructions.
...
llvm-svn: 127294
2011-03-09 00:00:35 +00:00
Bill Wendling
e313f16ad9
* Fix VRSHR and VSHR to have the correct encoding for the immediate.
...
* Update the NEON shift instruction test to expect what 'as' produces.
llvm-svn: 127293
2011-03-08 23:48:09 +00:00
Jakob Stoklund Olesen
ea5ebfed15
Delete dead code after rematerializing.
...
LiveRangeEdit::eliminateDeadDefs() will eventually be used by coalescing,
splitting, and spilling for dead code elimination. It can delete chains of dead
instructions as long as there are no dependency loops.
llvm-svn: 127287
2011-03-08 22:46:11 +00:00
Devang Patel
fbb482b314
llvm.dbg.declare intrinsic does not use any llvm::Values. It's magic!
...
llvm-svn: 127282
2011-03-08 22:12:11 +00:00
Stuart Hastings
e6fbe056b8
Reverting testcase at 4126896; r126672 broke something else. <rdar://problem/9055247>
...
llvm-svn: 127278
2011-03-08 21:54:17 +00:00
Bill Wendling
c90ca36e29
Once again try to appease the buildbot gods.
...
llvm-svn: 127272
2011-03-08 21:36:29 +00:00
Benjamin Kramer
128e9f0fe9
Strip cruft.
...
llvm-svn: 127269
2011-03-08 20:19:10 +00:00
Eric Christopher
eee5413f3b
Add a testcase for r127263.
...
llvm-svn: 127266
2011-03-08 19:49:15 +00:00
Bill Wendling
2e1e1c1e36
Try to fix the compilation error due to type incombatibility.
...
llvm-svn: 127265
2011-03-08 19:39:35 +00:00
Jakob Stoklund Olesen
880e0b7760
Fix the build for MSVC 9 whose upper_bound() wants to compare elements in the sorted array.
...
Patch by Olaf Krzikalla!
llvm-svn: 127264
2011-03-08 19:37:54 +00:00
Eric Christopher
7238cba180
Fix some latent bugs if the nodes are unschedulable. We'd gotten away
...
with this before since none of the register tracking or nightly tests
had unschedulable nodes.
This should probably be refixed with a special default Node that just
returns some "don't touch me" values.
Fixes PR9427
llvm-svn: 127263
2011-03-08 19:35:47 +00:00
Stuart Hastings
8030932290
Stop building PPC parts on OSX. Radar 8637926.
...
llvm-svn: 127262
2011-03-08 19:28:28 +00:00
Oscar Fuentes
a28879b824
Revert "Make a comparator's argument `const'. This fixes the build for
...
MSVC 9."
The "fix" was meaningless.
This reverts commit r127245.
llvm-svn: 127260
2011-03-08 19:26:21 +00:00
Jim Grosbach
14be61aeee
Darwin 'as' silently ignores the '.ident' directive.
...
llvm-svn: 127258
2011-03-08 19:17:19 +00:00
John McCall
cd5d3ee8c4
Typo. Patch by arrowdodger.
...
llvm-svn: 127256
2011-03-08 18:01:22 +00:00
Benjamin Kramer
b8ca01fff5
Reduce vector reallocations.
...
llvm-svn: 127254
2011-03-08 17:28:36 +00:00
Chris Lattner
c7b48d40d4
fix incorrect comment.
...
llvm-svn: 127252
2011-03-08 16:59:03 +00:00
Devang Patel
e1aa67cff5
Since last couple of days, argument number is encoded using 8 bits from line number field in argument's debug info.
...
llvm-svn: 127250
2011-03-08 16:29:40 +00:00
Devang Patel
fb30b85e7c
Update DILexicalBlock doc to mention new fields.
...
llvm-svn: 127249
2011-03-08 16:25:29 +00:00
Benjamin Kramer
679cfb54ec
X86: Fix the (saddo/ssub x, 1) -> incl/decl selection to check the right operand for 1.
...
Found by inspection.
llvm-svn: 127247
2011-03-08 15:20:20 +00:00
Justin Holewinski
42e9aaa4b1
PTX: Add intrinsic support for ntid, ctaid, and nctaid registers
...
llvm-svn: 127246
2011-03-08 14:10:18 +00:00
Oscar Fuentes
6ec5983a0c
Make a comparator's argument `const'. This fixes the build for MSVC 9.
...
llvm-svn: 127245
2011-03-08 13:52:07 +00:00
Oscar Fuentes
a693632dfd
Remove remnant of my experimentation with CMake.
...
llvm-svn: 127244
2011-03-08 13:30:52 +00:00
Duncan Sands
7dc3d47c34
Fix PR9331. Simplified version of a patch by Jakub Staszak.
...
llvm-svn: 127243
2011-03-08 12:39:03 +00:00
NAKAMURA Takumi
5918457b5b
lib/Support/regcomp.c: Fix cygwin warning.
...
llvm-svn: 127241
2011-03-08 12:25:29 +00:00
NAKAMURA Takumi
8506e4a1d6
Use $(ECHOPATH) to make llvm-lit from llvm-lit.in.
...
llvm-svn: 127240
2011-03-08 12:25:19 +00:00
NAKAMURA Takumi
0b26c3a674
Reapply r127073(partially): Introduce $(ECHOPATH) to print DOSish path string on MSYS bash for alternative of $(ECHO).
...
On mingw and python/w32, lit would not be expected to understand MSYS-style path.
llvm-svn: 127239
2011-03-08 12:25:10 +00:00
Bill Wendling
05334dad60
Testcase for r127187.
...
llvm-svn: 127236
2011-03-08 10:27:58 +00:00
Bill Wendling
45f470b86d
Don't show commands.
...
llvm-svn: 127224
2011-03-08 08:34:49 +00:00
Nick Lewycky
afc8098c9e
Reorder comments to put them the right way around.
...
llvm-svn: 127220
2011-03-08 06:29:47 +00:00
Devang Patel
97d0be8ee1
While sinking an instruction, do not lose llvm.dbg.value intrinsic.
...
llvm-svn: 127214
2011-03-08 03:06:19 +00:00
Bill Wendling
1d5532a0d5
Change the next release number to 3.0svn.
...
llvm-svn: 127213
2011-03-08 03:00:02 +00:00
Bill Wendling
a259686db1
A few more tests for instruction encodings.
...
llvm-svn: 127209
2011-03-08 02:51:48 +00:00
Eric Christopher
eb19e9e9fc
Turn on list-ilp scheduling by default on x86 and x86-64, fix up
...
testcases accordingly. Some are currently xfailed and will be filed
as bugs to be fixed or understood.
Performance results:
roughly neutral on SPEC
some micro benchmarks in the llvm suite are up between 100 and 150%, only
a pair of regressions that are due to be investigated
john-the-ripper saw:
10% improvement in traditional DES
8% improvement in BSDI DES
59% improvement in FreeBSD MD5
67% improvement in OpenBSD Blowfish
14% improvement in LM DES
Small compile time impact.
llvm-svn: 127208
2011-03-08 02:42:25 +00:00
Andrew Trick
52b3e38a1f
Further improvements to pre-RA-sched=list-ilp.
...
This change uses the MaxReorderWindow for both height and depth, which
tends to limit the negative effects of high register pressure.
llvm-svn: 127203
2011-03-08 01:51:56 +00:00
Bob Wilson
45acbd03db
Fix a compiler crash where a Glue value had multiple uses. Radar 9049552.
...
llvm-svn: 127198
2011-03-08 01:17:20 +00:00
Bob Wilson
70bd363517
Fix comment typos.
...
llvm-svn: 127197
2011-03-08 01:17:16 +00:00
Bill Wendling
77ad1dc56d
Rename the narrow shift right immediate operands to "shr_imm*" operands. Also
...
expand the testing of the narrowing shift right instructions.
No functionality change.
llvm-svn: 127193
2011-03-07 23:38:41 +00:00
Jakob Stoklund Olesen
71c380f6c7
Let shrinkToUses optionally return a list of now dead machine instructions.
...
llvm-svn: 127192
2011-03-07 23:29:10 +00:00
Eric Christopher
ac546dc62e
Typos.
...
llvm-svn: 127186
2011-03-07 22:48:16 +00:00
Devang Patel
d00c628f8f
Preserve line no. info.
...
Radar 9097659
llvm-svn: 127182
2011-03-07 22:43:45 +00:00
Jakob Stoklund Olesen
27f942fa60
Make the UselessRegs argument optional in the LiveRangeEdit constructor.
...
llvm-svn: 127181
2011-03-07 22:42:16 +00:00
Cameron Zwarich
df61694417
Move getRegPressureLimit() from TargetLoweringInfo to TargetRegisterInfo.
...
llvm-svn: 127175
2011-03-07 21:56:36 +00:00
Rafael Espindola
15a29867ed
Add test for r127138.
...
llvm-svn: 127172
2011-03-07 21:28:14 +00:00
Duncan Sands
e5d7369e1e
Often GCC can see that NumBuckets is zero here, resulting in a warning
...
about possibly swapped memset parameters. Avoid the warning.
llvm-svn: 127170
2011-03-07 19:38:38 +00:00
Jim Grosbach
e9fdc06fec
Tidy up.
...
llvm-svn: 127169
2011-03-07 19:28:43 +00:00
Jakob Stoklund Olesen
ac32d8a691
Handle the special case of registers begin redefined by early-clobber defs.
...
In this case, the value need to be available at the load index instead of the
normal use index.
llvm-svn: 127167
2011-03-07 18:56:16 +00:00
Owen Anderson
cd526fa15e
Use the correct LHS type when determining the legalization of a shift's RHS type.
...
llvm-svn: 127163
2011-03-07 18:29:47 +00:00
Justin Holewinski
0cfa737f27
ptx: Fix calling convention printing in AsmWriter.cpp
...
This allows LLVM IR using ptx_kernel or ptx_device calling
conventions to be properly printed when emitted in text form.
llvm-svn: 127157
2011-03-07 14:32:30 +00:00
Duncan Sands
2769c6e0dc
Clarify that the result of an srem is only guaranteed to have the same sign as the
...
left-hand-side if the result is non-zero.
llvm-svn: 127156
2011-03-07 09:12:24 +00:00
Bill Wendling
e51e464c06
Don't keep the log files around. Just pipe to a log file instead.
...
llvm-svn: 127155
2011-03-07 07:37:37 +00:00
Bill Wendling
4785885feb
Fix tagging name.
...
llvm-svn: 127154
2011-03-07 07:37:12 +00:00
Argyrios Kyrtzidis
35fd6dec7a
Try fixing mingw build.
...
llvm-svn: 127153
2011-03-07 05:35:01 +00:00
Eric Christopher
bb8599ade5
Prepend LD.Flags before LDFLAGS to avoid overriding necessary paths.
...
Patch by Jack Howarth.
llvm-svn: 127152
2011-03-07 04:25:12 +00:00
Nick Lewycky
ac55c79dd6
Tweak this test. We can analyze what happens and show that we still do the
...
right thing, instead of merely being unable to analyze and the transform
doesn't occur.
llvm-svn: 127149
2011-03-07 02:10:18 +00:00
Nick Lewycky
e467979d0a
Add more analysis of the sign bit of an srem instruction. If the LHS is negative
...
then the result could go either way. If it's provably positive then so is the
srem. Fixes PR9343 #7 !
llvm-svn: 127146
2011-03-07 01:50:10 +00:00
Argyrios Kyrtzidis
7260d8f57b
Do a compiler check that we use one of the types from PointerUnion[N], instead of a runtime check.
...
llvm-svn: 127145
2011-03-07 01:30:20 +00:00
NAKAMURA Takumi
3e76b502a4
Windows/PathV2.inc: Eliminate redundant condition. DWORD is unsigned.
...
llvm-svn: 127140
2011-03-07 00:12:53 +00:00
Rafael Espindola
871cfde1c2
Don't internalize available_externally functions. We already did the right
...
thing for variables.
llvm-svn: 127138
2011-03-06 23:41:34 +00:00
Chris Lattner
cf0eebc6c9
remove another jeff link
...
llvm-svn: 127135
2011-03-06 23:00:33 +00:00
Eric Christopher
9cb33deebf
Typo.
...
llvm-svn: 127131
2011-03-06 21:13:45 +00:00
Nick Lewycky
92db8e8e39
ConstantInt has some getters which return ConstantInt's or ConstantVector's of
...
the value splatted into every element. Extend this to getTrue and getFalse which
by providing new overloads that take Types that are either i1 or <N x i1>. Use
it in InstCombine to add vector support to some code, fixing PR8469!
llvm-svn: 127116
2011-03-06 03:36:19 +00:00
NAKAMURA Takumi
0d8150f279
lib/CodeGen/AsmPrinter/CMakeLists.txt: Fix CMake build, following up to r127099.
...
llvm-svn: 127114
2011-03-06 00:13:15 +00:00
Andrew Trick
dd01732e63
Disable a couple of experimental heuristics to get the best results from the current implementation of -pre-RA-sched=list-ilp.
...
llvm-svn: 127113
2011-03-06 00:03:32 +00:00
Benjamin Kramer
75e7a147ae
Avoid zero-sized allocations when copying a fresh DenseMap.
...
llvm-svn: 127110
2011-03-05 22:00:28 +00:00
Jakob Stoklund Olesen
42fc943f21
Revert r127073: "Introduce $(ECHOPATH) to print DOSish path string on MSYS bash for alternative of $(ECHO)."
...
It broke the llvm-gcc-native-mingw32 buildbot, and we need all of them to be green for the 2.9 branch.
Takumi, please reapply after we branch, preferably with a fix ;-)
llvm-svn: 127107
2011-03-05 18:55:06 +00:00
Anton Korobeynikov
692f633df9
ARM assembler stuff is crazy: for .setfp positive values of offset corresponds to "add" instruction, not to "sub" as in .pad case
...
llvm-svn: 127106
2011-03-05 18:44:00 +00:00
Anton Korobeynikov
9e66cbb366
In Thumb1 mode the constant might be materialized via the load from constpool. Emit unwinding information in case when this load from constpool is used to change the stack pointer in the prologue.
...
llvm-svn: 127105
2011-03-05 18:43:55 +00:00
Anton Korobeynikov
a8d177b2d4
Implement frame unwinding information emission for Thumb1. Not finished yet because there is no way given the constpool index to examine the actual entry: the reason is clones inserted by constant island pass, which are not tracked at all! The only connection is done during asmprinting time via magic label names which is really gross and needs to be eventually fixed.
...
llvm-svn: 127104
2011-03-05 18:43:50 +00:00
Anton Korobeynikov
51537f1c7f
Add unwind information emission for thumb stuff
...
llvm-svn: 127103
2011-03-05 18:43:43 +00:00
Anton Korobeynikov
acca7adf16
Handle MI flags inside Thumb2SizeReduction pass.
...
llvm-svn: 127102
2011-03-05 18:43:38 +00:00
Anton Korobeynikov
e7410dd0d5
Preliminary support for ARM frame save directives emission via MI flags.
...
This is just very first approximation how the stuff should be done
(e.g. ARM-only for now). More to follow.
llvm-svn: 127101
2011-03-05 18:43:32 +00:00
Anton Korobeynikov
961013686e
Provide hooks to set MI flags in MachineInstrBuilder
...
llvm-svn: 127100
2011-03-05 18:43:20 +00:00
Anton Korobeynikov
a7ec2dcefd
Some first rudimentary support for ARM EHABI: print exception table in "text mode".
...
llvm-svn: 127099
2011-03-05 18:43:15 +00:00
Anton Korobeynikov
65cff414b6
Add FrameSetup MI flags
...
llvm-svn: 127098
2011-03-05 18:43:04 +00:00
Anton Korobeynikov
489bedcc24
Shorten AsmPrinterFlags filed to accomodate for future Flags field
...
llvm-svn: 127097
2011-03-05 18:42:54 +00:00
Jakob Stoklund Olesen
27e0a4ab86
Work around a coalescer bug.
...
The coalescer can in very rare cases leave too large live intervals around after
rematerializing cheap-as-a-move instructions.
Linear scan doesn't really care, but live range splitting gets very confused
when a live range is killed by a ghost instruction.
I will fix this properly in the coalescer after 2.9 branches.
llvm-svn: 127096
2011-03-05 18:33:49 +00:00
Bob Wilson
00d09428fe
Remove unused conditional negate operations.
...
llvm-svn: 127090
2011-03-05 16:54:31 +00:00
Benjamin Kramer
08c913b6e6
InstCombine: We know the number of items initially added to the worklist map, reserve space early to avoid rehashing.
...
llvm-svn: 127089
2011-03-05 16:43:46 +00:00
Benjamin Kramer
4d050b6f85
Lazily allocate DenseMaps.
...
This makes lookup slightly more expensive but it's worth it, unused
DenseMaps are common in LLVM code apparently.
1% speedup on clang -O3 bzip2.c
4% speedup on clang -O3 oggenc.c (Release build of clang on i386/linux)
llvm-svn: 127088
2011-03-05 16:43:41 +00:00
Che-Liang Chiou
369ea3fdb4
ptx: add basic intrinsic support
...
llvm-svn: 127084
2011-03-05 14:17:37 +00:00
Andrew Trick
25cedf3fe4
Be explicit with abs(). Visual Studio workaround.
...
llvm-svn: 127075
2011-03-05 10:29:25 +00:00
NAKAMURA Takumi
250c357ce7
utils/lit/lit/TestRunner.py: bash is available with MSYS on Python/W32. Then we can execute "bash tests".
...
llvm-svn: 127074
2011-03-05 09:46:53 +00:00
NAKAMURA Takumi
e9dc4d309a
Introduce $(ECHOPATH) to print DOSish path string on MSYS bash for alternative of $(ECHO).
...
On mingw and python/w32, lit would not be expected to understand MSYS-style path.
llvm-svn: 127073
2011-03-05 09:46:45 +00:00
NAKAMURA Takumi
f86dd9e3ec
On Windows hosts, Python scripts in test/Scripts did not accept binary files from stdin. The environment variable "PYTHONUNBUFFERED" makes stdin as binary. Thanks to Danil Malyshev!
...
llvm-svn: 127072
2011-03-05 09:46:36 +00:00
Andrew Trick
d7f4c21684
Fix for -sched-high-latency-cycles in sched=list-ilp mode.
...
llvm-svn: 127071
2011-03-05 09:18:16 +00:00
Andrew Trick
5158a86fcb
Missing "virtual" keyword. Jakob's review.
...
llvm-svn: 127070
2011-03-05 08:39:45 +00:00
Cameron Zwarich
13c885d193
Fix PR9398 - 10% of llc compile time is spent in Value::getNumUses. This reduces
...
the percentage of time spent in CodeGenPrepare when llcing 403.gcc from 12.6% to
1.8% of total llc time.
llvm-svn: 127069
2011-03-05 08:12:26 +00:00
Andrew Trick
b8390b7a25
Missing comment.
...
llvm-svn: 127068
2011-03-05 08:04:11 +00:00
Andrew Trick
641e2d4f8c
Increased the register pressure limit on x86_64 from 8 to 12
...
regs. This is the only change in this checkin that may affects the
default scheduler. With better register tracking and heuristics, it
doesn't make sense to artificially lower the register limit so much.
Added -sched-high-latency-cycles and X86InstrInfo::isHighLatencyDef to
give the scheduler a way to account for div and sqrt on targets that
don't have an itinerary. It is currently defaults to 10 (the actual
number doesn't matter much), but only takes effect on non-default
schedulers: list-hybrid and list-ilp.
Added several heuristics that can be individually disabled for the
non-default sched=list-ilp mode. This helps us determine how much
better we can do on a given benchmark than the default
scheduler. Certain compute intensive loops run much faster in this
mode with the right set of heuristics, and it doesn't seem to have
much negative impact elsewhere. Not all of the heuristics are needed,
but we still need to experiment to decide which should be disabled by
default for sched=list-ilp.
llvm-svn: 127067
2011-03-05 08:00:22 +00:00
Chris Lattner
35d1f9f983
remove jeff's name (by his request)
...
llvm-svn: 127066
2011-03-05 07:23:02 +00:00
Andrew Trick
27c079e1b0
whitespace
...
llvm-svn: 127065
2011-03-05 06:31:54 +00:00
Nick Lewycky
9719a719c7
Thread comparisons over udiv/sdiv/ashr/lshr exact and lshr nuw/nsw whenever
...
possible. This goes into instcombine and instsimplify because instsimplify
doesn't need to check hasOneUse since it returns (almost exclusively) constants.
This fixes PR9343 #4 #5 and #8 !
llvm-svn: 127064
2011-03-05 05:19:11 +00:00
Nick Lewycky
25cc338d88
Try once again to optimize "icmp (srem X, Y), Y" by turning the comparison into
...
true/false or "icmp slt/sge Y, 0".
llvm-svn: 127063
2011-03-05 04:28:48 +00:00
Jakob Stoklund Olesen
1a9b66c752
Rework the global split cost calculation.
...
The global cost is the sum of block frequencies for spill code that must be
inserted because preferences weren't met.
llvm-svn: 127062
2011-03-05 03:28:51 +00:00
NAKAMURA Takumi
6f9a8f85d7
test/CodeGen/X86/vec_cast.ll: [PR8311] Add explicit -mtriple=x86_64-linux and -mtriple=x86_64-win32. Thanks to Nadav, it might be fixed in r126424.
...
llvm-svn: 127060
2011-03-05 02:38:02 +00:00
Jin-Gu Kang
0434dbe1fe
test commit
...
llvm-svn: 127059
2011-03-05 02:36:09 +00:00
Jakob Stoklund Olesen
4b598e156a
Compute the constraints for global live range splitting from an interference pattern.
...
This simplifies the code and makes it faster too.
The interference patterns are saved for each candidate register. It will be
reused for actually executing the split. Work in progress.
llvm-svn: 127054
2011-03-05 01:10:31 +00:00
Jim Grosbach
dc55428d7a
Teach the register scavenger to take subregs into account when finding a free register.
...
llvm-svn: 127049
2011-03-05 00:20:19 +00:00
Eric Christopher
f045b7ab45
Support unregistering exception frames of functions when they are removed.
...
Patch by Johannes Schaub!
Fixes PR8548
llvm-svn: 127047
2011-03-04 23:37:39 +00:00
David Greene
9e8963acfd
Fix the case where the number of jobs is less than the
...
number of threads. In that case make the number of threads
equal to the number of jobs and launch one jobs on each
thread. This makes things work like make -j.
llvm-svn: 127045
2011-03-04 23:02:52 +00:00
Eric Christopher
403269894f
Improve readability with some whitespace!
...
llvm-svn: 127043
2011-03-04 22:47:12 +00:00
Jakob Stoklund Olesen
05a2f5178e
Extract a method. No functional change.
...
llvm-svn: 127040
2011-03-04 22:11:11 +00:00
Bill Wendling
88842e4574
Initialize variable.
...
llvm-svn: 127038
2011-03-04 21:38:47 +00:00
Jakob Stoklund Olesen
d7e1bb80a9
Go back to comparing spill weights when deciding if interference can be evicted.
...
It gives better results. Sometimes, a live range can be large and still have
high spill weight. Such a range should not be spilled.
llvm-svn: 127036
2011-03-04 21:32:50 +00:00
Bruno Cardoso Lopes
434248a62c
Improve div/rem node handling on mips. Patch by Akira Hatanaka
...
llvm-svn: 127034
2011-03-04 21:03:24 +00:00
Bruno Cardoso Lopes
d631599e38
Add testcase for r127032
...
llvm-svn: 127033
2011-03-04 20:48:39 +00:00
Bruno Cardoso Lopes
a744ef3f90
Expands register/immediate pairs when the immediate is too large to fit in 16-bit field. Patch by Akira Hatanaka
...
llvm-svn: 127032
2011-03-04 20:48:08 +00:00
Dan Gohman
aa036eedb8
When decling to reuse existing expressions that involve casts, ignore
...
bitcasts, which are really no-ops here. This fixes slowdowns on
MultiSource/Applications/aha and others.
llvm-svn: 127031
2011-03-04 20:46:46 +00:00
Bruno Cardoso Lopes
8887d6593f
Rewrite and simplify o32 vaarg passing, no functional changes. Patch by Sasa Stankovic
...
llvm-svn: 127029
2011-03-04 20:27:44 +00:00
Joerg Sonnenberger
62f759791a
Be nice to Xcore and the XMOS assembler and avoid quoting section names
...
that contain only letters, digits and the characters "_" and ".".
llvm-svn: 127028
2011-03-04 20:03:14 +00:00
Bruno Cardoso Lopes
f8198e4311
Lowers block address. Currently asserts when relocation model is not PIC. Patch by Akira Hatanaka
...
llvm-svn: 127027
2011-03-04 20:01:52 +00:00
Benjamin Kramer
dfb0ad30a8
raw_ostream: while it is generally desirable to do larger writes, it can lead to
...
inefficient file system buffering if the writes are not a multiple of the desired
buffer size. Avoid this by limiting the large write to a multiple of the buffer
size and copying the remainder into the buffer.
Thanks to Dan for pointing this out.
llvm-svn: 127026
2011-03-04 19:49:30 +00:00
Jakob Stoklund Olesen
b8e6fdc23c
Renumber slot indexes locally when possible.
...
Initially, slot indexes are quad-spaced. There is room for inserting up to 3
new instructions between the original instructions.
When we run out of indexes between two instructions, renumber locally using
double-spaced indexes. The original quad-spacing means that we catch up quickly,
and we only have to renumber a handful of instructions to get a monotonic
sequence. This is much faster than renumbering the whole function as we did
before.
llvm-svn: 127023
2011-03-04 19:43:38 +00:00
Devang Patel
906df92d5c
XFAIL for all. These tests are darwin specific anyway.
...
llvm-svn: 127022
2011-03-04 19:38:10 +00:00
Nick Lewycky
41c529bd09
Revert broken srem logic from r126991.
...
llvm-svn: 127021
2011-03-04 19:26:08 +00:00
Bruno Cardoso Lopes
328e2ce043
Fix an old copy-n-paste
...
llvm-svn: 127020
2011-03-04 19:20:24 +00:00
Devang Patel
a0d73fd65e
Disable ARMGlobalMerge on darwin. The debugger is not yet able to extract individual variable's info from merged global.
...
llvm-svn: 127019
2011-03-04 19:11:05 +00:00
Bruno Cardoso Lopes
22b69db8dd
Expands FCOS and FSIN nodes when type is f64.
...
llvm-svn: 127017
2011-03-04 18:54:14 +00:00
Jakob Stoklund Olesen
348d8e8ba6
Number SlotIndexes uniformly without looking at the number of defs on each instruction.
...
You can't really predict how many indexes will be needed from the number of
defs, so let's keep it simple.
Also remove an extra empty index that was inserted after each basic block. It
was intended for live-out ranges, but it was never used that way.
llvm-svn: 127014
2011-03-04 18:51:09 +00:00
Jakob Stoklund Olesen
2c5f536a42
Symbolize the default instruction distance.
...
llvm-svn: 127013
2011-03-04 18:36:51 +00:00
Benjamin Kramer
acf0842088
raw_ostream: If writing a string that is larger than the buffer, write it directly instead of doing many buffer-sized writes.
...
This caps the number of write(2) calls per string to a maximum of 2.
llvm-svn: 127010
2011-03-04 18:18:16 +00:00
Jakob Stoklund Olesen
a1363fac05
Deferred SlotIndex renumbering was a good idea but never used.
...
llvm-svn: 127008
2011-03-04 18:08:32 +00:00
Jakob Stoklund Olesen
b88f6adf0f
Add SlotIndex statistics.
...
llvm-svn: 127007
2011-03-04 18:08:29 +00:00
Jakob Stoklund Olesen
d4f788952d
Tweak debug output. No functional changes.
...
llvm-svn: 127006
2011-03-04 18:08:26 +00:00
Bruno Cardoso Lopes
db93ddb41b
Fixes addc pattern when immediate cannot be represented with 16-bit. Patch by Akira Hatanaka
...
llvm-svn: 127005
2011-03-04 17:59:18 +00:00
Bruno Cardoso Lopes
ed874eff93
Remove (hopefully) all trailing whitespaces from the mips backend. Patch by Hatanaka, Akira
...
llvm-svn: 127003
2011-03-04 17:51:39 +00:00
Duncan Sands
6bd1044222
Revert commit 126684 "Use the correct shift amount type". It is only the correct
...
type after type legalization has completed. Before then it may simply not be big
enough to hold the shift amount, particularly on x86 which uses a very small type
for shifts (this issue broke stuff in the past which is why LegalizeTypes carefully
uses a large type for shift amounts).
llvm-svn: 127000
2011-03-04 14:28:59 +00:00
Kalle Raiskila
a1d947dd14
Allow vector shifts (shl,lshr,ashr) on SPU.
...
There was a previous implementation with patterns that would
have matched e.g.
shl <v4i32> <i32>,
but this is not valid LLVM IR so they never were selected.
llvm-svn: 126998
2011-03-04 13:19:18 +00:00
Kalle Raiskila
3531e9b0d9
Allow load from constant on SPU.
...
A 'load <4 x i32>* null' crashes llc before this fix.
llvm-svn: 126995
2011-03-04 12:00:11 +00:00
Nick Lewycky
8e3a79da9f
Fold "icmp pred (srem X, Y), Y" like we do for urem. Handle signed comparisons
...
in the urem case, though not the other way around. This is enough to get #3 from
PR9343!
llvm-svn: 126991
2011-03-04 10:06:52 +00:00
Nick Lewycky
3cec6f5563
Teach instruction simplify to use constant ranges to solve problems of the form
...
"icmp pred %X, CI" and a number of examples where "%X = binop %Y, CI2".
Some of these cases (div and rem) used to make it through opt -O2, but the
others are probably now making code elsewhere redundant (probably instcombine).
llvm-svn: 126988
2011-03-04 07:00:57 +00:00
Eli Friedman
5aa4c68eca
Followup to r126970: add 64-bit encoding tests for str with reg operand.
...
llvm-svn: 126987
2011-03-04 04:06:47 +00:00
Jakob Stoklund Olesen
e2017b6f2e
DenseMap<uintptr_t,...> doesn't allow all values as keys.
...
Avoid colliding with the sentinels, hopefully unbreaking
llvm-gcc-x86_64-linux-selfhost.
llvm-svn: 126982
2011-03-04 02:48:56 +00:00
Andrew Trick
c88b7ecb88
Minor pre-RA-sched fixes and cleanup.
...
Fix the PendingQueue, then disable it because it's not required for
the current schedulers' heuristics.
Fix the logic for the unused list-ilp scheduler.
llvm-svn: 126981
2011-03-04 02:03:45 +00:00
Devang Patel
213264c03d
Add ArrayRef variant.
...
llvm-svn: 126978
2011-03-04 01:20:33 +00:00
Jakob Stoklund Olesen
c332e727b4
Precompute block frequencies, pow() isn't free.
...
llvm-svn: 126975
2011-03-04 00:58:40 +00:00
Jakob Stoklund Olesen
1a69e23300
Use an IndexedMap instead of a DenseMap for the live-out cache.
...
This speeds up updateSSA() so it only accounts for 5% of the live range
splitting time.
llvm-svn: 126972
2011-03-04 00:15:36 +00:00
Eli Friedman
f63614a982
PR9377: Handle x86 str with register operand in a way consistent with gas.
...
llvm-svn: 126970
2011-03-04 00:10:17 +00:00
Bill Wendling
f3658f3872
There are times when the landing pad won't have a call to 'eh.selector' in
...
it. It's been assumed up til now that it would be in its immediate
successor. However, this isn't necessarily the case. It could be in one of its
successor's successors.
Modify the code to more thoroughly check for an 'eh.selector' call in
successors. It only looks at a successor if we get there as a result of an
unconditional branch.
Testcase ObjC/exceptions-4.m in r126968.
llvm-svn: 126969
2011-03-03 23:14:05 +00:00
Bob Wilson
f5d23beff7
PR8053: Fix encoding of S bit in some ARM instructions.
...
Patch by Zonr Chang!
llvm-svn: 126967
2011-03-03 23:07:15 +00:00
Eli Friedman
d8a555bb3b
Revert r123908; the code in question is completely untested and wrong.
...
llvm-svn: 126964
2011-03-03 22:33:23 +00:00
Joerg Sonnenberger
852ab890b5
Bug#9033: For the ELF assembler output, always quote the section name.
...
llvm-svn: 126963
2011-03-03 22:31:08 +00:00
Devang Patel
63b3e76370
Fix typo.
...
llvm-svn: 126962
2011-03-03 21:49:41 +00:00
Devang Patel
34a7ab400e
Fix thinko in previous check-in.
...
Add comment.
llvm-svn: 126959
2011-03-03 20:08:10 +00:00
Devang Patel
4ab660b077
llvm::Function argument count is not a good indicator of how many arugments does the function have at source level. If we need more space, just resize vector conservatively. This vector is only used once per function.
...
llvm-svn: 126957
2011-03-03 20:02:02 +00:00
Jim Grosbach
7e200664f6
Allow a target to choose whether to prefer the scavenger emergency spill slot
...
be next to the frame pointer or the stack pointer.
llvm-svn: 126956
2011-03-03 20:01:52 +00:00
Jan Sjödin
771911e28b
Split MCEELFStreamer and ELFObjectWriter into .h and .cpp files, so that other components can use them.
...
llvm-svn: 126942
2011-03-03 14:52:12 +00:00
Richard Osborne
5003782293
Fix typo in comment.
...
llvm-svn: 126941
2011-03-03 14:21:22 +00:00
Richard Osborne
af52c52569
Optimize fprintf -> iprintf if there are no floating point arguments
...
and siprintf is available on the target.
llvm-svn: 126940
2011-03-03 14:20:22 +00:00
Justin Holewinski
8e9a126a6c
PTX: Fix Emacs renaming a symbol
...
llvm-svn: 126938
2011-03-03 14:09:40 +00:00
Richard Osborne
2dfb888392
Optimize sprintf -> siprintf if there are no floating point arguments
...
and siprintf is available on the target.
llvm-svn: 126937
2011-03-03 14:09:28 +00:00
Justin Holewinski
969dfbcff6
PTX: Fix a couple of lint violations
...
llvm-svn: 126936
2011-03-03 13:34:29 +00:00
Richard Osborne
815de536e5
Optimize printf -> iprintf if there are no floating point arguments
...
and iprintf is available on the target. Currently iprintf is only
marked as being available on the XCore.
llvm-svn: 126935
2011-03-03 13:17:51 +00:00
Tilmann Scheller
3bc0bcf3ad
Use X86_thiscall calling convention for Win64 as well.
...
llvm-svn: 126934
2011-03-03 07:49:07 +00:00
Eli Friedman
d92d17bf67
PR9352: Always emit a relocation for weak symbols. Not emitting relocations
...
for calls to weak symbols with a definition has the appearance of working
with LLVM-generated code because weak symbol definitions are put in their
own sections.
llvm-svn: 126933
2011-03-03 07:24:36 +00:00
Bob Wilson
6f6d739b6e
TableGen should not ignore BX instructions for the ARM disassembler. pr9368.
...
llvm-svn: 126931
2011-03-03 07:19:52 +00:00
Bob Wilson
ab8881accd
Add a readme entry for the redundant movw issue for pr9370.
...
llvm-svn: 126930
2011-03-03 06:39:09 +00:00
Jakob Stoklund Olesen
bfdbc11554
Renumber slot indexes uniformly instead of spacing according to the number of defs.
...
There are probably much larger speedups to be had by renumbering locally instead
of looping over the whole function. For now, the greedy register allocator is
25% faster.
llvm-svn: 126926
2011-03-03 06:29:01 +00:00
Jakob Stoklund Olesen
4ec757d588
Represent sentinel slot indexes with a null pointer.
...
This is much faster than using a pointer to a ManagedStatic object accessed with
a function call. The greedy register allocator is 5% faster overall just from
the SlotIndex default constructor savings.
llvm-svn: 126925
2011-03-03 05:40:04 +00:00
Jakob Stoklund Olesen
67a84d08ce
Avoid comparing invalid slot indexes, and assert that it doesn't happen.
...
The SlotIndex created by the default construction does not represent a position
in the function, and it doesn't make sense to compare it to other indexes.
llvm-svn: 126924
2011-03-03 05:18:19 +00:00
Jakob Stoklund Olesen
db13110e4d
Optimize SlotIndex equality tests.
...
IndexListEntries have unique indexes, so it is not necessary to dereference
pointers to them.
llvm-svn: 126923
2011-03-03 05:18:15 +00:00
Jakob Stoklund Olesen
a04dddf7a1
Avoid comparing invalid slot indexes.
...
llvm-svn: 126922
2011-03-03 04:23:52 +00:00
Jakob Stoklund Olesen
9a6382fc81
Cache basic block bounds instead of asking SlotIndexes::getMBBRange all the time.
...
This speeds up the greedy register allocator by 15%.
DenseMap is not as fast as one might hope.
llvm-svn: 126921
2011-03-03 03:41:29 +00:00
Bill Wendling
34c1ccf1f9
Check the ASM, not LLVM IR.
...
llvm-svn: 126918
2011-03-03 02:02:12 +00:00
Bob Wilson
ec84568904
pr9367: Add missing predicated BLX instructions.
...
Patch by Jyun-Yan You, with some minor adjustments and a testcase from me.
llvm-svn: 126915
2011-03-03 01:41:01 +00:00
Bill Wendling
8c68af9092
Testcase for r126913.
...
llvm-svn: 126914
2011-03-03 01:32:56 +00:00
Jakob Stoklund Olesen
c96019886c
Change the SplitEditor interface to a single instance can be shared for multiple splits.
...
llvm-svn: 126912
2011-03-03 01:29:13 +00:00
Jakob Stoklund Olesen
5ea0712e96
Only run the updateSSA loop when we have actually seen multiple values.
...
When only a single value has been seen, new PHIDefs are never needed.
llvm-svn: 126911
2011-03-03 01:29:10 +00:00
Jakob Stoklund Olesen
d58c8d12ab
Fix PHI handling in LiveIntervals::shrinkToUses().
...
We need to wait until we meet a PHIDef in its defining block before resurrecting
PHIKills in the predecessors.
This should unbreak the llvm-gcc-build-x86_64-darwin10-x-mingw32-x-armeabi bot.
llvm-svn: 126905
2011-03-03 00:20:51 +00:00
Stuart Hastings
3e7f2366fb
Test case for r126864. Radar 9056407.
...
llvm-svn: 126900
2011-03-02 23:41:40 +00:00
Bob Wilson
24b3ba5990
Avoid exponential blow-up when printing DAGs.
...
David Greene changed CannotYetSelect() to print the full DAG including multiple
copies of operands reached through different paths in the DAG. Unfortunately
this blows up exponentially in some cases. The depth limit of 100 is way too
high to prevent this -- I'm seeing a message string of 150MB with a depth of
only 40 in one particularly bad case, even though the DAG has less than 200
nodes. Part of the problem is that the printing code is following chain
operands, so if you fail to select an operation with a chain, the printer will
follow all the chained operations back to the entry node.
llvm-svn: 126899
2011-03-02 23:38:06 +00:00
Jakob Stoklund Olesen
815196ca19
Turn the Edit member into a pointer so it can change dynamically.
...
No functional change.
llvm-svn: 126898
2011-03-02 23:31:50 +00:00
Stuart Hastings
e5fe543878
Test case for r126672. Radar 9055247.
...
llvm-svn: 126896
2011-03-02 23:24:44 +00:00
Kevin Enderby
b8b6041734
Fixes an assertion failure while disassembling ARM rsbs reg/reg form.
...
Patch by Ted Kremenek!
llvm-svn: 126895
2011-03-02 23:08:33 +00:00
Jakob Stoklund Olesen
503b143a62
Transfer simply defined values directly without recomputing liveness and SSA.
...
Values that map to a single new value in a new interval after splitting don't
need new PHIDefs, and if the parent value was never rematerialized the live
range will be the same.
llvm-svn: 126894
2011-03-02 23:05:19 +00:00
Jakob Stoklund Olesen
3648263a3e
Extract a method. No functional change.
...
llvm-svn: 126893
2011-03-02 23:05:16 +00:00
Renato Golin
e84af17b6e
Fixing a bug when printing fpu text to object file. Patch by Mans Rullgard.
...
llvm-svn: 126882
2011-03-02 21:20:09 +00:00
Chris Lattner
836dff0f1c
add some slice helper methods.
...
llvm-svn: 126878
2011-03-02 20:55:51 +00:00
Duncan Sands
bf577d6a86
Remove DIFactory. Patch by Devang.
...
llvm-svn: 126871
2011-03-02 20:30:37 +00:00
Stuart Hastings
6b4007dec6
Can't introduce floating-point immediate constants after legalization.
...
Radar 9056407.
llvm-svn: 126864
2011-03-02 19:36:30 +00:00
Tilmann Scheller
a3769f8021
Add Win64 thiscall calling convention.
...
llvm-svn: 126862
2011-03-02 19:29:22 +00:00
Oscar Fuentes
318c3f1717
Support for parallel compilation (/MP) when using the VS IDE.
...
Patch by Erik Olofsson!
llvm-svn: 126847
2011-03-02 17:47:37 +00:00
David Greene
dd567b214b
[AVX] Fix mask predicates for 256-bit UNPCKLPS/D and implement
...
missing patterns for them.
Add a SIMD test subdirectory to hold tests for SIMD instruction
selection correctness and quality.
'
llvm-svn: 126845
2011-03-02 17:23:43 +00:00
Che-Liang Chiou
7ed32cc51b
ptx: fix lint and compiler warnings
...
llvm-svn: 126838
2011-03-02 07:58:46 +00:00
Che-Liang Chiou
59515dc703
Add 64-bit addressing to PTX backend
...
- Add '64bit' sub-target option.
- Select 32-bit/64-bit loads/stores based on '64bit' option.
- Fix function parameter order.
Patch by Justin Holewinski
llvm-svn: 126837
2011-03-02 07:36:48 +00:00
Rafael Espindola
1e49a6d9bc
Add a special streamer to libLTO that just records symbols definitions and
...
uses.
The result produced by the streamer is used to give the linker more accurate
information and to add to llvm.compiler.used. The second improvement removes
the need for the user to add __attribute__((used)) to functions only used in
inline asm. The first one lets us build firefox with LTO on Darwin :-)
llvm-svn: 126830
2011-03-02 04:14:42 +00:00
Cameron Zwarich
daed6f6c39
Fix some typos.
...
llvm-svn: 126829
2011-03-02 04:03:46 +00:00
John McCall
8b1ae6417d
Teach the clang attribute emitter about InheritableParamAttr.
...
Intended to be atomic with clang r126828.
llvm-svn: 126827
2011-03-02 04:00:52 +00:00
Cameron Zwarich
86ade9510f
Remove some more unused code that I missed.
...
llvm-svn: 126826
2011-03-02 03:48:29 +00:00
Cameron Zwarich
5dd2aa2615
Eliminate the unused CodeGenPrepare option to split critical edges.
...
llvm-svn: 126825
2011-03-02 03:31:46 +00:00
Che-Liang Chiou
65b1476031
Extend initial support for primitive types in PTX backend
...
- Allow i16, i32, i64, float, and double types, using the native .u16,
.u32, .u64, .f32, and .f64 PTX types.
- Allow loading/storing of all primitive types.
- Allow primitive types to be passed as parameters.
- Allow selection of PTX Version and Shader Model as sub-target attributes.
- Merge integer/floating-point test cases for load/store.
- Use .u32 instead of .s32 to conform to output from NVidia nvcc compiler.
Patch by Justin Holewinski
llvm-svn: 126824
2011-03-02 03:20:28 +00:00
Bill Wendling
c0e1067e4d
Small cleanup.
...
llvm-svn: 126821
2011-03-02 02:17:11 +00:00
Jakob Stoklund Olesen
48af8923c5
Move extendRange() into SplitEditor and delete the LiveRangeMap class.
...
Extract the updateSSA() method from the too long extendRange().
LiveOutCache can be shared among all the new intervals since there is at most
one of the new ranges live out from each basic block.
llvm-svn: 126818
2011-03-02 01:59:34 +00:00
Nick Lewycky
68faa2dbbe
Quiet a compiler warning about unused variable 'ExtVNI'.
...
llvm-svn: 126815
2011-03-02 01:43:30 +00:00
Dan Gohman
7290868a1b
Don't re-use existing addrec expansions if they contain casts.
...
This fixes PR9259.
llvm-svn: 126812
2011-03-02 01:34:10 +00:00
Evan Cheng
15fed7af3c
Catch more cases where 2-address pass should 3-addressify instructions. rdar://9002648.
...
llvm-svn: 126811
2011-03-02 01:08:17 +00:00
Jakob Stoklund Olesen
b02376198b
Rename mapValue to extendRange because that is its function now.
...
Simplify the signature - The return value and ParentVNI are no longer needed.
llvm-svn: 126809
2011-03-02 00:49:28 +00:00
Jakob Stoklund Olesen
f3c6e9211c
Simplify LiveIntervals::shrinkToUses() a bit by using the new extendInBlock().
...
llvm-svn: 126806
2011-03-02 00:33:03 +00:00
Jakob Stoklund Olesen
81eb18df34
Fix typo.
...
llvm-svn: 126805
2011-03-02 00:33:01 +00:00