Nick Lewycky
fea7ddc735
Most browsers eliminate whitespace between anchor tags. Force whitespace with
...
so that the code reads properly.
llvm-svn: 124514
2011-01-29 01:09:53 +00:00
Roman Divacky
cd9ae95ae7
Error on .code16 instead of producing wrong (32bit) code.
...
llvm-svn: 124498
2011-01-28 19:29:48 +00:00
Duncan Sands
e4b4d0c16d
This dyn_cast should be a cast. Pointed out by Frits van Bommel.
...
llvm-svn: 124497
2011-01-28 18:53:08 +00:00
Duncan Sands
65995fa2a0
Thread divisions over selects and phis. This doesn't fire much and has basically
...
zero effect on the testsuite (it improves two Ada testcases).
llvm-svn: 124496
2011-01-28 18:50:50 +00:00
Bob Wilson
775eec2280
PR9030: Fix disassembly of ARM "mov pc, lr" instruction.
...
Patch by Jyun-Yan You.
llvm-svn: 124492
2011-01-28 17:50:30 +00:00
Duncan Sands
771e82a863
My auto-simplifier noticed that ((X/Y)*Y)/Y occurs several times in SPEC
...
benchmarks, and that it can be simplified to X/Y. (In general you can only
simplify (Z*Y)/Y to Z if the multiplication did not overflow; if Z has the
form "X/Y" then this is the case). This patch implements that transform and
moves some Div logic out of instcombine and into InstructionSimplify.
Unfortunately instcombine gets in the way somewhat, since it likes to change
(X/Y)*Y into X-(X rem Y), so I had to teach instcombine about this too.
Finally, thanks to the NSW/NUW flags, sometimes we know directly that "Z*Y"
does not overflow, because the flag says so, so I added that logic too. This
eliminates a bunch of divisions and subtractions in 447.dealII, and has good
effects on some other benchmarks too. It seems to have quite an effect on
tramp3d-v4 but it's hard to say if it's good or bad because inlining decisions
changed, resulting in massive changes all over.
llvm-svn: 124487
2011-01-28 16:51:11 +00:00
Oscar Fuentes
e789bdb870
Fix libffi usage when it is on a custom path.
...
llvm-svn: 124486
2011-01-28 16:49:05 +00:00
Roman Divacky
7e9e290952
Add support for parsing .float
...
llvm-svn: 124485
2011-01-28 14:20:32 +00:00
Nick Lewycky
cfb284cf96
Rename functions to follow coding standard. Also rejiggers comments. No
...
functionality change.
llvm-svn: 124482
2011-01-28 08:43:14 +00:00
Nick Lewycky
aaf401241a
Add a doxygen comment for this class.
...
llvm-svn: 124480
2011-01-28 08:19:00 +00:00
Nick Lewycky
564fcca856
Reorder for readability. (Chris, is this what you meant?)
...
llvm-svn: 124479
2011-01-28 07:36:21 +00:00
Evan Cheng
aaa9606b2f
Revert r124462. There are a few big regressions that I need to fix first.
...
llvm-svn: 124478
2011-01-28 07:12:38 +00:00
Nick Lewycky
c5eb3733f7
Reduce the number of functions we look at in the first pass, and preallocate
...
the function equality set.
llvm-svn: 124475
2011-01-28 05:48:15 +00:00
Nick Lewycky
db34be0e31
Clean up the tests a little, make sure we match an instruction in the right
...
test.
llvm-svn: 124473
2011-01-28 05:13:17 +00:00
Nick Lewycky
0af77fd45b
Fix build with stdcxx by using llvm::next. Patch by Joerg Sonnenberger!
...
llvm-svn: 124472
2011-01-28 04:00:15 +00:00
Rafael Espindola
2f72a84284
Add a triple.
...
llvm-svn: 124471
2011-01-28 03:57:55 +00:00
Nick Lewycky
6593e6eaf6
Add missing include for ptrdiff_t. Patch by Joerg Sonnenberger!
...
llvm-svn: 124470
2011-01-28 03:52:25 +00:00
Nick Lewycky
b074e32641
Fold select + select where both selects are on the same condition.
...
llvm-svn: 124469
2011-01-28 03:28:10 +00:00
Rafael Espindola
6c17d54891
Print the visibility of declarations.
...
llvm-svn: 124468
2011-01-28 03:20:10 +00:00
Nico Weber
4ada0d9164
PR8951: Support for .equiv in integrated assembler, patch by Jörg Sonnenberger!
...
llvm-svn: 124467
2011-01-28 03:04:41 +00:00
Evan Cheng
417fca86c4
- Stop simplifycfg from duplicating "ret" instructions into unconditional
...
branches. PR8575, rdar://5134905, rdar://8911460.
- Allow codegen tail duplication to dup small return blocks after register
allocation is done.
llvm-svn: 124462
2011-01-28 02:19:21 +00:00
Evan Cheng
bb8420a070
Fix PLD encoding.
...
llvm-svn: 124458
2011-01-27 23:48:34 +00:00
Kevin Enderby
e9f2f0cb0b
Changed llvm-mc arm target to give an error if .syntax divided is used. Since
...
only .syntax unified is supported.
llvm-svn: 124454
2011-01-27 23:22:36 +00:00
Bob Wilson
f9bab3a47a
Fix a comment typo.
...
llvm-svn: 124450
2011-01-27 23:08:52 +00:00
Oscar Fuentes
800a2afbb3
Use the paths to libffi's header and library even when no custom
...
location was stated with FFI_INCLUDE_DIR/FFI_LIBRARY_DIR.
llvm-svn: 124449
2011-01-27 22:58:34 +00:00
David Greene
34f7c0d8aa
[AVX] Clean up the code to configure target lowering for AVX. Specify
...
how to lower more/new operations. This is a prerequisite for adding
additional AVX lowering.
llvm-svn: 124447
2011-01-27 22:38:56 +00:00
Andrew Trick
c0ca67601a
Remove a temporary workaround for a lencod miscompile. Depends on the fix in r124442.
...
llvm-svn: 124443
2011-01-27 21:28:51 +00:00
Andrew Trick
13bb644fdd
VirtRegRewriter fix: update kill flags, which are used by the scavenger.
...
rdar://problem/8893967: JM/lencod miscompile at -arch armv7 -mthumb -O3
Added ResurrectKill to remove kill flags after we decide to reused a
physical register. And (hopefully) ensure that we call it in all the
right places.
Sorry, I'm not checking in a unit test given that it's a miscompile I
can't reproduce easily with a toy example. Failures in the rewriter
depend on a series of heuristic decisions maked during one of the many
upstream phases in codegen. This case would require coercing regalloc
to generate a couple of rematerialzations in a way that causes the
scavenger to reuse the same register at just the wrong point.
The general way to test this is to implement kill flags
verification. Then we could have a simple, robust compile-only unit
test. That would be worth doing if the whole pass was not about to
disappear. At this point we focus verification work on the next
generation of regalloc.
llvm-svn: 124442
2011-01-27 21:26:43 +00:00
Douglas Gregor
dd02d62594
Clang: separate the access-control diagnostics from other diagnostics that do not have SFINAE behavior.
...
llvm-svn: 124440
2011-01-27 21:06:17 +00:00
Benjamin Kramer
57e3d65884
Unbreak the build.
...
llvm-svn: 124426
2011-01-27 20:30:54 +00:00
Nick Lewycky
e2d46d30ae
Expound upon this comparison!
...
llvm-svn: 124406
2011-01-27 19:51:31 +00:00
Nick Lewycky
5a37e950e1
Use dyn_cast instead of isa+cast.
...
llvm-svn: 124404
2011-01-27 19:42:43 +00:00
Oscar Fuentes
632ad9bfe6
Don't show -pedantic, -W and -Wall on the output of
...
llvm-config --cflags --cxxflags --cppflags
We shouldn't impose those flags on people who use llvm-config for
building their own projects.
llvm-svn: 124399
2011-01-27 19:29:48 +00:00
Devang Patel
1cec755494
Speculatively revert r124380.
...
llvm-svn: 124397
2011-01-27 19:15:01 +00:00
Devang Patel
3b266a2780
While legalizing SDValues do not drop SDDbgValues, trasfer them to new legal nodes.
...
Take 2. This includes fix for dragonegg crash.
llvm-svn: 124380
2011-01-27 17:43:53 +00:00
Roman Divacky
ed5efb4053
Add support for specifying register name in cfi-register/offset/def
...
as well as register number.
llvm-svn: 124379
2011-01-27 17:16:37 +00:00
Roman Divacky
36b1b47c5a
Introduce virtual ParseRegister method in TargetAsmParser.
...
Create override of this method in X86/ARM/MBlaze.
llvm-svn: 124378
2011-01-27 17:14:22 +00:00
Jay Foad
9f32cfd35e
Fix indentation.
...
llvm-svn: 124375
2011-01-27 14:44:55 +00:00
Nick Lewycky
0c572ebc46
Add DenseSet::resize for API parity with DenseMap::resize.
...
llvm-svn: 124370
2011-01-27 09:10:42 +00:00
Nick Lewycky
13e04aef2a
Fix surprising missed optimization in mergefunc where we forgot to consider
...
that relationships like "i8* null" is equivalent to "i32* null".
llvm-svn: 124368
2011-01-27 08:38:19 +00:00
Chris Lattner
2114b762de
Don't infinitely recurse! Patch by Marius Wachtler!
...
llvm-svn: 124366
2011-01-27 07:35:27 +00:00
Bob Wilson
2d69fb4184
Avoid modifying the OneClassForEachPhysReg map while iterating over it.
...
Linear scan regalloc is currently assuming that any register aliased with
a member of a regclass must also be in at least one regclass. That is not
always true. For example, for X86, RIP is in a regclass but IP is not.
If you're unlucky, this can cause a crash by invalidating the iterator.
llvm-svn: 124365
2011-01-27 07:26:15 +00:00
Eric Christopher
ebd8db7d00
Add a testcase for my last checkin.
...
llvm-svn: 124358
2011-01-27 06:01:17 +00:00
Eric Christopher
331cc5218d
Use the incoming VT not the VT of where we're trying to store to determine
...
if we can store a value. Also, the exclusion is or, not and.
Fixes rdar://8920247.
llvm-svn: 124357
2011-01-27 05:44:56 +00:00
NAKAMURA Takumi
f3e20b9f0f
lib/Target/X86/X86ISelDAGToDAG.cpp: __main should be WINCALL64 on Win64.
...
CALL64 marks %xmm* as dead.
llvm-svn: 124354
2011-01-27 03:20:19 +00:00
Matt Beaumont-Gay
a148c59231
Try harder to not have unused variables.
...
llvm-svn: 124350
2011-01-27 02:39:27 +00:00
Matt Beaumont-Gay
0cddbf2bdf
Opt-mode -Wunused-variable cleanup
...
llvm-svn: 124346
2011-01-27 01:47:50 +00:00
Devang Patel
92b7077f9e
Reapply 124301
...
llvm-svn: 124339
2011-01-27 00:13:27 +00:00
Bill Wendling
fb4ee9bbde
Initialize variable to get rid of clang warning.
...
llvm-svn: 124331
2011-01-26 22:21:35 +00:00
Jay Foad
b0c5e35929
Simplify User::operator delete().
...
llvm-svn: 124330
2011-01-26 21:56:10 +00:00