Jakob Stoklund Olesen
e7e50e6f45
Delete the linear scan register allocator.
...
RegAllocGreedy has been the default for six months now.
Deleting RegAllocLinearScan makes it possible to also delete
VirtRegRewriter and clean up the spiller code.
llvm-svn: 144475
2011-11-12 22:39:45 +00:00
Jakob Stoklund Olesen
ce4ef9f8d5
Remove histogram tests.
...
Counting the number of occurences of each opcode is not a useful test.
llvm-svn: 144474
2011-11-12 22:39:40 +00:00
Jakob Stoklund Olesen
0eac531bc2
RAGreedy is better about hinting now.
...
Or maybe we are just getting lucky.
llvm-svn: 144473
2011-11-12 22:39:37 +00:00
Jakob Stoklund Olesen
8ec1a92afd
Linear scan is going away.
...
llvm-svn: 144472
2011-11-12 22:39:34 +00:00
Jakob Stoklund Olesen
654d60888e
XFAIL test that depends on linear scan to remove dead code.
...
Filed PR11364 to track the problem. Should the register allocator
eliminate dead code?
llvm-svn: 144471
2011-11-12 22:39:30 +00:00
Jakob Stoklund Olesen
fa3a8ee6e2
Remove obsolete test.
...
This test was committed with a bugfix to RemoveCopyByCommutingDef, but
that optimization is no longer triggered by this test.
llvm-svn: 144470
2011-11-12 22:39:27 +00:00
Jakob Stoklund Olesen
80b3d299a9
Remove obsolete test.
...
This test is for a very specific LocalRewriter bug. LocalRewriter is
going away.
llvm-svn: 144469
2011-11-12 22:39:24 +00:00
Jakob Stoklund Olesen
0c7d9d90ef
Remove obsolete test.
...
I don't think this test does what is was supposed to do, and
LocalRewriter is going away anyway.
llvm-svn: 144463
2011-11-12 20:37:57 +00:00
Jakob Stoklund Olesen
126f9779c3
Eliminate more linear scan tests.
...
llvm-svn: 144462
2011-11-12 20:35:26 +00:00
Jakob Stoklund Olesen
9d090daa33
Switch a couple -O0 tests to RABasic.
...
llvm-svn: 144461
2011-11-12 20:11:04 +00:00
Jakob Stoklund Olesen
4deff7bc1d
Switch a few tests off linearscan.
...
llvm-svn: 144460
2011-11-12 19:53:52 +00:00
Jakob Stoklund Olesen
6ac6aa782d
Delete old test of a VirtRegRewriter feature.
...
This test doesn't expose the issue with RAGreedy.
I filed PR11363 to track the missing InlineSpiller feature.
llvm-svn: 144459
2011-11-12 19:53:48 +00:00
Jakob Stoklund Olesen
74d091b395
Remove old test that doesn't make sense.
...
The test is checking that the output doesn't contains any 'mov '
strings. It does contain movl, though.
llvm-svn: 144458
2011-11-12 19:53:45 +00:00
Craig Topper
3dc75f9e3b
Add more AVX2 shift lowering support. Move AVX2 variable shift to use patterns instead of custom lowering code.
...
llvm-svn: 144457
2011-11-12 09:58:49 +00:00
Nick Lewycky
d48ab84556
Don't try to loop on iterators that are potentially invalidated inside the loop. Fixes PR11361!
...
llvm-svn: 144454
2011-11-12 03:09:12 +00:00
Akira Hatanaka
77733535eb
Fix typo.
...
llvm-svn: 144453
2011-11-12 02:38:12 +00:00
Akira Hatanaka
19891f843c
Implement Mips64's handling of byval arguments in LowerCall.
...
llvm-svn: 144452
2011-11-12 02:34:50 +00:00
Sean Callanan
0772ae1b53
Fixed the MCJIT so that it can emit not only instance
...
methods but also class methods for Objective-C.
Clang emits Objective-C method names with '\1' at the
beginning, and the JIT has pre-existing logic to try
prepending a '\1' when searching a module for an
instance method (that is, a method whose name begins
with '-'). I simply extended it to do the same thing
when it encountered a class method (a method whose
name begins with '+').
llvm-svn: 144451
2011-11-12 02:31:32 +00:00
Akira Hatanaka
fb9bae34da
Implement Mips64's handling of byval arguments in LowerFormalArguments.
...
llvm-svn: 144449
2011-11-12 02:29:58 +00:00
Akira Hatanaka
5ed07c03f4
64-bit arbitrary immediate pattern.
...
llvm-svn: 144448
2011-11-12 02:25:00 +00:00
Akira Hatanaka
202f6400ef
Function for handling byval arguments.
...
llvm-svn: 144447
2011-11-12 02:20:46 +00:00
Daniel Dunbar
415ecbc34a
LLVMBuild: Add info for gtest.
...
llvm-svn: 144445
2011-11-12 02:11:04 +00:00
Daniel Dunbar
52823cc91c
build: Attempt to rectify inconsistencies between CMake and LLVMBuild versions of explicit dependencies.
...
- The hope is that we have a tool/test to verify these are accurate (and tight) soon.
llvm-svn: 144444
2011-11-12 02:10:57 +00:00
Eli Friedman
ecb453805d
Make sure scalarrepl picks the correct alloca when it rewrites a bitcast. Fixes PR11353.
...
llvm-svn: 144442
2011-11-12 02:07:50 +00:00
Rafael Espindola
e7cc8bff82
The dwarf standard says that the only differences between a out-of-line
...
instance and a concrete inlined instance are the use of DW_TAG_subprogram
instead of DW_TAG_inlined_subroutine and the who owns the tree.
We were also omitting DW_AT_inline from the abstract roots. To fix this,
make sure we mark abstract instance roots with DW_AT_inline even when
we have only out-of-line instances referring to them with DW_AT_abstract_origin.
FileCheck is not a very good tool for tests like this, maybe we should add
a -verify mode to llvm-dwarfdump.
llvm-svn: 144441
2011-11-12 01:57:54 +00:00
Jim Grosbach
3a3d8e82bc
ARM refactor simple immediate asm operand render methods.
...
These immediate operands all use the same simple logic for rendering to
MCInst, so have them share the method for doing so.
llvm-svn: 144439
2011-11-12 00:58:43 +00:00
Eli Friedman
9d448e4a42
Don't try to form pre/post-indexed loads/stores until after LegalizeDAG runs. Fixes PR11029.
...
llvm-svn: 144438
2011-11-12 00:35:34 +00:00
Jim Grosbach
8ca13deecf
Re-apply 144430, this time with the associated isel and disassmbler bits.
...
Original commit msg: 'ARM assembly parsing for VST1 two-register encoding.'
llvm-svn: 144437
2011-11-12 00:31:53 +00:00
Daniel Dunbar
48032f9cde
build/Make: Define a TARGET_NATIVE_ARCH variable to be a bit more precise than
...
ARCH, which gets tested in many more contexts.
llvm-svn: 144434
2011-11-12 00:18:02 +00:00
Eli Friedman
1347715644
Some cleanup and bulletproofing for node replacement in LegalizeDAG. To maintain LegalizeDAG invariants, whenever we a node is replaced, we must attempt to delete it, and if it still
...
has uses after it is replaced (which can happen in rare cases due to CSE), we must revisit it.
llvm-svn: 144432
2011-11-11 23:58:27 +00:00
Jim Grosbach
155763b630
Oops. Missed the isel half of this. revert while I sort that out.
...
llvm-svn: 144431
2011-11-11 23:51:31 +00:00
Jim Grosbach
28f721a2b4
ARM assembly parsing for VST1 two-register encoding.
...
llvm-svn: 144430
2011-11-11 23:45:47 +00:00
Jim Grosbach
609d113874
ARM optional size suffix for VLDR/VSTR syntax.
...
llvm-svn: 144427
2011-11-11 23:34:43 +00:00
Chad Rosier
a7ebc5617d
Add support in fast-isel for selecting memset/memcpy/memmove intrinsics.
...
llvm-svn: 144426
2011-11-11 23:31:03 +00:00
Chad Rosier
ab1a4a2301
Loosen test by using REs. Approved by Devang.
...
llvm-svn: 144425
2011-11-11 23:25:38 +00:00
Daniel Dunbar
7f89f4c91c
CMake: Fix CMake build for new Mips tblgen file.
...
llvm-svn: 144423
2011-11-11 23:12:56 +00:00
Jim Grosbach
12952fef71
ARM vldm and vstm VFP instructions can take a data type suffix.
...
It's ignored by the assembler when present, but is legal syntax. Other
instructions have something similar, but for some mnemonics it's
only sometimes not significant, so this quick check in the parser will
need refactored into something more robust soon-ish. This gets some
basics working in the meantime.
Partial for rdar://10435264
llvm-svn: 144422
2011-11-11 23:08:10 +00:00
Daniel Dunbar
dbcfb9987c
build/Make: Change llvm-config-2 to be compiled as a build tool.
...
llvm-svn: 144421
2011-11-11 22:59:49 +00:00
Daniel Dunbar
b102d5cb66
llvm-config-2: Detect when we are running out of a BuildTools development tree, so that we can always provide library/include information for the real build directory.
...
llvm-svn: 144420
2011-11-11 22:59:47 +00:00
Daniel Dunbar
94f3c5402d
cross-build/Make: Update cross build to properly forward ARCH and
...
TARGETS_TO_BUILD variables to build tools submake, and also tweak echo command
to indicate when we are compiling/etc build tools.
llvm-svn: 144419
2011-11-11 22:59:45 +00:00
Daniel Dunbar
823256b3a9
build/Make: Eliminate BUILD_COMPONENT variable, which is unused.
...
llvm-svn: 144418
2011-11-11 22:59:42 +00:00
Daniel Dunbar
57fb3ae997
LLVMBuild: Add description files for the LLVM tools.
...
llvm-svn: 144417
2011-11-11 22:59:39 +00:00
Daniel Dunbar
2f39f72703
LLVMBuild: Alphabetize required_libraries lists.
...
llvm-svn: 144416
2011-11-11 22:59:23 +00:00
Daniel Dunbar
b8a9c43d07
Target/LLVMBuild: Order components alphabetically.
...
llvm-svn: 144415
2011-11-11 22:59:16 +00:00
Bruno Cardoso Lopes
c85e3ff334
Mips MC object code emission improvements:
...
"With this patch we can now generate runnable Mips code through LLVM
direct object emission. We have run numerous simple programs, both C
and C++ and with -O0 and -O3 from the output. The code is not production
ready, but quite useful for experimentation." Patch and message by
Jack Carter
llvm-svn: 144414
2011-11-11 22:58:42 +00:00
Eric Christopher
1094ded6f3
Add an option '--enable-libcpp' that will have the compiler pass on
...
options to use libc++ as the default c++ library.
llvm-svn: 144413
2011-11-11 22:51:42 +00:00
Jim Grosbach
b68eeb3852
Nuke no longer accurate comment.
...
llvm-svn: 144411
2011-11-11 22:30:06 +00:00
Andrew Trick
28c1d18434
Preserve MachineMemOperands in ARMLoadStoreOptimizer.
...
Fixes PR8113.
llvm-svn: 144409
2011-11-11 22:18:09 +00:00
Jim Grosbach
85a2343b01
ARM allow Q registers in vldm/vstm register lists.
...
rdar://9672822
llvm-svn: 144407
2011-11-11 21:27:40 +00:00
Daniel Dunbar
5dcd025036
build/Make: Switch back to llvm-config for now, I foolishly forgot to think
...
about cross compiles.
llvm-svn: 144406
2011-11-11 20:41:06 +00:00
Nicolas Geoffray
26c328d734
Add a custom safepoint method, in order for language implementers to decide which machine instruction gets to be a safepoint.
...
llvm-svn: 144399
2011-11-11 18:32:52 +00:00
Devang Patel
a90cb76489
Move X86 specific test in X86 directory.
...
llvm-svn: 144395
2011-11-11 18:13:19 +00:00
Devang Patel
a39794b029
Move X86 specific test in X86 directory.
...
llvm-svn: 144394
2011-11-11 18:10:38 +00:00
Bob Wilson
c391f7ff64
Remove FIXME comment that should have been removed with r144351.
...
llvm-svn: 144392
2011-11-11 17:34:14 +00:00
Dan Bailey
089cc53232
allow non-device function calls in PTX when natively handling device-side printf
...
llvm-svn: 144388
2011-11-11 14:45:12 +00:00
Dan Bailey
80cd65bfa9
add rules in tabgen for PTX COPY_ADDRESS of frameindex
...
llvm-svn: 144387
2011-11-11 14:45:06 +00:00
Benjamin Kramer
f554228d82
Clients are responsible for initializing the targets, remove it from the disassembler API.
...
This will break users of the LLVMCreateDisasm API (not that I know of any). They have to call the
LLVMInitializeAll* functions from llvm-c/Target.h themselves now. edis' C API in all its horribleness
should be unaffected.
llvm-svn: 144385
2011-11-11 13:20:40 +00:00
Benjamin Kramer
48b5bbffed
Remove the unnecessary dependency on libARMCodeGen from libARMDisassembler.
...
llvm-svn: 144384
2011-11-11 12:39:41 +00:00
Benjamin Kramer
1cc805c058
Remove the unnecessary dependency on libMBlazeCodeGen from libMBlazeDisassembler.
...
llvm-svn: 144383
2011-11-11 12:39:35 +00:00
Craig Topper
ea28a34c43
Add lowering for AVX2 shift instructions.
...
llvm-svn: 144380
2011-11-11 07:39:23 +00:00
Chad Rosier
e19b0a9eb8
Rename variables to avoid confusion. No functionallity change intended.
...
llvm-svn: 144377
2011-11-11 06:27:41 +00:00
Chad Rosier
7ddd63ce4e
Add support for using immediates with select instructions.
...
rdar://10412592
llvm-svn: 144376
2011-11-11 06:20:39 +00:00
Akira Hatanaka
4a63d1c0f0
Do not try to detect DAG combine patterns for integer multiply-add/sub if value
...
type is not i32. MIPS does not have 64-bit integer multiply-add/sub
instructions.
llvm-svn: 144373
2011-11-11 04:18:21 +00:00
Akira Hatanaka
21cbc25bbb
64-bit atomic instructions.
...
llvm-svn: 144372
2011-11-11 04:14:30 +00:00
Akira Hatanaka
9189d7127f
Modify LowerFRAMEADDR. Use 64-bit register FP_64 when ABI is N64.
...
llvm-svn: 144371
2011-11-11 04:11:56 +00:00
Akira Hatanaka
4bdfec57ba
Add 64-bit versions of LEA_ADDiu and DynAlloc. Modify LowerDYNAMIC_STACKALLOC.
...
llvm-svn: 144370
2011-11-11 04:06:38 +00:00
Akira Hatanaka
0009dc2088
64-bit versions of jal, jalr and bal.
...
llvm-svn: 144368
2011-11-11 04:03:54 +00:00
Akira Hatanaka
11521863da
Emit Mips64's sequence of instructions that set global register in prologue.
...
llvm-svn: 144367
2011-11-11 04:00:29 +00:00
Akira Hatanaka
aa1f4c7986
Fix printing of MCSymbolRegExpr. Needs three closing parentheses for
...
VK_Mips_GPOFF_HI/LO.
llvm-svn: 144366
2011-11-11 03:58:36 +00:00
Eli Friedman
c4a001478c
Make sure to expand SIGN_EXTEND_INREG for NEON vectors. PR11319, round 3.
...
llvm-svn: 144361
2011-11-11 03:16:38 +00:00
Eric Christopher
0a917b7ad4
Initialize variable.
...
llvm-svn: 144360
2011-11-11 03:16:32 +00:00
Chad Rosier
023ede5649
When loading a value, treat an i1 as an i8.
...
llvm-svn: 144356
2011-11-11 02:38:59 +00:00
Eric Christopher
c12c211c44
If we have a DIE with an AT_specification use that instead of the normal
...
addr DIE when adding to the dwarf accelerator tables.
llvm-svn: 144354
2011-11-11 01:55:22 +00:00
Eli Friedman
0a309292c4
Get rid of an optimization in SCCP which appears to have many issues. Specifically, it doesn't handle many cases involving undef correctly, and it is missing other checks which
...
lead to it trying to re-mark a value marked as a constant with a different value. It also appears to trigger very rarely.
Fixes PR11357.
llvm-svn: 144352
2011-11-11 01:16:15 +00:00
Bill Wendling
70976ad9c2
Reenable compact unwinding now that <rdar://problem/10430076> is fixed.
...
llvm-svn: 144351
2011-11-11 01:03:50 +00:00
Bill Wendling
8df8204554
If we have to reset the calculation of the compact encoding, then also reset the
...
"saved register" index.
<rdar://problem/10430076>
llvm-svn: 144350
2011-11-11 00:59:14 +00:00
Chad Rosier
2a3503e061
Add support for using MVN to materialize negative constants.
...
rdar://10412592
llvm-svn: 144348
2011-11-11 00:36:21 +00:00
Bill Wendling
f311655e3f
Disable compact unwind generation until I can solve the codegen problems.
...
llvm-svn: 144346
2011-11-11 00:28:42 +00:00
Daniel Dunbar
f258ad81c0
llvm-build: Add --configure-target-def-file option.
...
- Can be used to generate the substitution values we currently use for the various target related .def files.
llvm-svn: 144345
2011-11-11 00:24:00 +00:00
Daniel Dunbar
6d617b48c7
LLVMBuild: Add explicit information on whether targets define an assembly printer, assembly parser, or disassembler.
...
llvm-svn: 144344
2011-11-11 00:23:56 +00:00
Jim Grosbach
d9a9be269c
Thumb2 ldm/stm updating w/ one register in the list are LDR/STR.
...
rdar://10429490
llvm-svn: 144338
2011-11-10 23:58:34 +00:00
Jim Grosbach
afad053141
ARM let processInstruction() tranforms chain.
...
llvm-svn: 144337
2011-11-10 23:42:14 +00:00
Nicolas Geoffray
5e515797b6
Add blurb for VMKit.
...
llvm-svn: 144336
2011-11-10 23:37:56 +00:00
Daniel Dunbar
a2193ab418
build/Make: llvm-config-2 needs to use EXEEXT, since it is an actual executable
...
now.
llvm-svn: 144335
2011-11-10 23:33:20 +00:00
Daniel Dunbar
eb3179e57a
Fix typo.
...
llvm-svn: 144334
2011-11-10 23:33:18 +00:00
Jim Grosbach
9bded9dc24
Thumb2 parsing for push/pop w/ hi registers in the reglist.
...
rdar://10130228.
llvm-svn: 144331
2011-11-10 23:17:11 +00:00
Jim Grosbach
a113eb0205
Thumb1 diagnostics for reglist on PUSH/POP fix.
...
Was not checking the first register in the register list.
llvm-svn: 144329
2011-11-10 23:01:27 +00:00
Daniel Dunbar
105c7edf7c
git: Add tools/lldb to the ignore list.
...
llvm-svn: 144328
2011-11-10 22:55:50 +00:00
Rafael Espindola
79278365d3
Check in getOrCreateSubprogramDIE if a declaration exists and if so output
...
it first.
This is a more general fix to pr11300.
llvm-svn: 144324
2011-11-10 22:34:29 +00:00
Daniel Dunbar
86660ab0b0
build/Make: Try to switch over to llvm-config-2 again, now that I've cleaned up
...
some more of the explicit dependencies. I'm staging things more slowly this time
in case there is more unanticipated fallout.
llvm-svn: 144323
2011-11-10 22:11:04 +00:00
Jim Grosbach
5a5ce63742
Thumb MUL assembly parsing for 3-operand form.
...
Get the source register that isn't tied to the destination register correct,
even when the assembly source operand order is backwards.
rdar://10428630
llvm-svn: 144322
2011-11-10 22:10:12 +00:00
Daniel Dunbar
085f6f2af1
build/MBlazeDisassembler: Some compilers may generate an MBlaze disassembler
...
that depends on MBlazeCodeGen. This is a layering violation that should really
be fixed.
llvm-svn: 144321
2011-11-10 22:00:37 +00:00
Daniel Dunbar
b27317f7dd
build/MCDisassembler: Fix required libraries list of MCDisassembler to use
...
all-targets instead of an explicit list.
llvm-svn: 144320
2011-11-10 22:00:34 +00:00
Eric Christopher
66b37db641
Make types and namespaces take multiple DIEs for the accelerator tables
...
as well.
llvm-svn: 144319
2011-11-10 21:47:55 +00:00
Chris Lattner
9304ea4306
Remove a really ancient line from the default 'make clean' rule that attempts
...
to delete core files. This causes a warning in clang/lib/StaticAnalyzer on
case insensitive filesystems, since it contains a "Core" directory. Since this
is pointless anyway, just zap it.
llvm-svn: 144317
2011-11-10 21:12:28 +00:00
Chad Rosier
d1762e00e2
When in ARM mode, LDRH/STRH require special handling of negative offsets.
...
For correctness, disable this for now.
rdar://10418009
llvm-svn: 144316
2011-11-10 21:09:49 +00:00
Jim Grosbach
42ba6286b6
ARM .thumb_func directive for quoted symbol names.
...
Use the getIdentifier() method of the token, not getString(), otherwise
we keep the quotes as part of the symbol name, which we don't want.
rdar://10428015
llvm-svn: 144315
2011-11-10 20:48:53 +00:00
Tony Linthicum
3a9d77f4c1
test commit undo
...
llvm-svn: 144314
2011-11-10 20:39:51 +00:00
Tony Linthicum
1aff5b237b
test commit redux
...
llvm-svn: 144313
2011-11-10 20:23:28 +00:00
Pete Cooper
a4237c380e
Fixed bug in DeadStoreElimination commit r144239
...
Size of data being pointed to wasn't always being checked so some small writes were killing big writes
Fixes <rdar://problem/10426753>
llvm-svn: 144312
2011-11-10 20:22:08 +00:00
Chris Lattner
6d3eeec068
random notes, llvm-gcc is gone, fix a few broken tags.
...
llvm-svn: 144311
2011-11-10 20:15:40 +00:00
Daniel Dunbar
933b43f188
Revert r144300 "llvm-config: Replace with C++ version (was llvm-config-2).",
...
which didn't appear ready for prime time.
llvm-svn: 144309
2011-11-10 19:59:35 +00:00
Tony Linthicum
b9848b2115
undo test commit
...
llvm-svn: 144308
2011-11-10 19:58:22 +00:00
Tony Linthicum
f0f05dfaf6
test commit
...
llvm-svn: 144307
2011-11-10 19:58:03 +00:00
Eric Christopher
e288793e44
Move type handling to make sure we get all created types that aren't
...
forward decls and have names into the dwarf accelerator types table.
llvm-svn: 144306
2011-11-10 19:52:58 +00:00
Eric Christopher
d9843b34e6
Rework adding function names to the dwarf accelerator tables, allow
...
multiple dies per function and support C++ basenames.
llvm-svn: 144304
2011-11-10 19:25:34 +00:00
Owen Anderson
c5c49466a1
Add additional checking to ensure that MachineMemOperands are never set to null, which can happen in weird circumstances where target intrinsic hooks are implemented incorrectly.
...
llvm-svn: 144303
2011-11-10 19:25:09 +00:00
Jim Grosbach
c14871cc67
ARM assembly parsing for LSR/LSL/ROR(immediate).
...
More of rdar://9704684
llvm-svn: 144301
2011-11-10 19:18:01 +00:00
Daniel Dunbar
166c804893
llvm-config: Replace with C++ version (was llvm-config-2).
...
llvm-svn: 144300
2011-11-10 18:49:59 +00:00
Daniel Dunbar
f5b9658a25
llvm-config-2: Use USEDLIBS directly instead of LINK_COMPONENTS, which will
...
require this tool to resolve (currently).
llvm-svn: 144299
2011-11-10 18:49:50 +00:00
Duncan Sands
a294c549ca
Release notes for DragonEgg.
...
llvm-svn: 144298
2011-11-10 18:44:29 +00:00
Jim Grosbach
61db5a59f7
ARM assembly parsing for ASR(immediate).
...
Start of rdar://9704684
llvm-svn: 144293
2011-11-10 16:44:55 +00:00
Daniel Dunbar
b538095011
build: Rename CBackend and CppBackend libraries to have CodeGen suffix, for
...
consistency with other targets.
llvm-svn: 144292
2011-11-10 15:35:14 +00:00
Daniel Dunbar
fe999b4799
llvm-config-2: Fix thinko in maintenance of visited component set.
...
llvm-svn: 144291
2011-11-10 14:53:23 +00:00
NAKAMURA Takumi
270354100a
test/CodeGen/X86/lsr-loop-exit-cond.ll: Try to appease linux and freebsd bots to specify explicit -mtriple=x86_64-darwin.
...
I guess it expects -relocation-model=pic.
llvm-svn: 144290
2011-11-10 14:18:59 +00:00
Evan Cheng
d33b2d6b7a
Use a bigger hammer to fix PR11314 by disabling the "forcing two-address
...
instruction lower optimization" in the pre-RA scheduler.
The optimization, rather the hack, was done before MI use-list was available.
Now we should be able to implement it in a better way, perhaps in the
two-address pass until a MI scheduler is available.
Now that the scheduler has to backtrack to handle call sequences. Adding
artificial scheduling constraints is just not safe. Furthermore, the hack
is not taking all the other scheduling decisions into consideration so it's just
as likely to pessimize code. So I view disabling this optimization goodness
regardless of PR11314.
llvm-svn: 144267
2011-11-10 07:43:16 +00:00
Nadav Rotem
0a2f797dec
AVX2: Add variable shift from memory.
...
Note: These patterns only works in some cases because
many times the load sd node is bitcasted from a load
node of a different type.
llvm-svn: 144266
2011-11-10 06:54:20 +00:00
Chad Rosier
3fbd094ad9
For immediate encodings of icmp, zero or sign extend first. Then
...
determine if the value is negative and flip the sign accordingly.
rdar://10422026
llvm-svn: 144258
2011-11-10 01:30:39 +00:00
Daniel Dunbar
807c6e4e5f
build/Make & CMake: Pass the appropriate --native-target and --enable-targets
...
options to llvm-build, so the all-targets etc. components are defined properly.
llvm-svn: 144255
2011-11-10 01:16:48 +00:00
Daniel Dunbar
233c9304a8
llvm-build: Add --native-target and --enable-targets options, and add logic to
...
handle defining the "magic" target related components (like native,
nativecodegen, and engine).
- We still require these components to be in the project (currently in
lib/Target) so that we have a place to document them and hopefully make it
more obvious that they are "magic".
llvm-svn: 144253
2011-11-10 00:50:07 +00:00
Daniel Dunbar
79fa1e8891
llvm-build: Split out the validation logic.
...
llvm-svn: 144252
2011-11-10 00:49:58 +00:00
Daniel Dunbar
1c04e14447
llvm-build: Change CBackend and CppBackend to not use library_name. This will
...
change the generated library .a file name once we fully switch over, but
simplifies how we treat these targets without requiring more special casing
(since their library group name and the codegen library name currently map to
the same "llvm-config" style component name).
llvm-svn: 144251
2011-11-10 00:49:55 +00:00
Daniel Dunbar
82219ad4dc
llvm-build: Add an explicit component type to represent targets.
...
- Gives us a place to hang target specific metadata (like whether the target has a JIT).
llvm-svn: 144250
2011-11-10 00:49:51 +00:00
Daniel Dunbar
c83a459937
llvm-build: Tidy up options.
...
llvm-svn: 144249
2011-11-10 00:49:42 +00:00
Jakob Stoklund Olesen
eef48b6938
Strip old implicit operands after foldMemoryOperand.
...
The TII.foldMemoryOperand hook preserves implicit operands from the
original instruction. This is not what we want when those implicit
operands refer to the register being spilled.
Implicit operands referring to other registers are preserved.
This fixes PR11347.
llvm-svn: 144247
2011-11-10 00:17:03 +00:00
Owen Anderson
133ccfcc22
Remove this from the CMake build since I erased the file.
...
llvm-svn: 144245
2011-11-10 00:07:22 +00:00
Jim Grosbach
a48485a37f
Tidy up.
...
llvm-svn: 144244
2011-11-10 00:02:33 +00:00
Owen Anderson
efc349af6c
Remove the old-style ARM disassembler, which is no longer used.
...
llvm-svn: 144243
2011-11-09 23:56:06 +00:00
Jim Grosbach
25bc090170
Thumb2 assembly parsing STMDB w/ optional .w suffix.
...
rdar://10422955
llvm-svn: 144242
2011-11-09 23:44:23 +00:00
Eli Friedman
2d4055b683
Make sure we correctly unroll conversions between v2f64 and v2i32 on ARM.
...
llvm-svn: 144241
2011-11-09 23:36:02 +00:00
Pete Cooper
856977cb15
DeadStoreElimination can now trim the size of a store if the end of the store is dead.
...
Currently checks alignment and killing stores on a power of 2 boundary as this is likely
to trim the size of the earlier store without breaking large vector stores into scalar ones.
Fixes <rdar://problem/10140300>
llvm-svn: 144239
2011-11-09 23:07:35 +00:00
Nick Lewycky
47eebcfd66
Fix typo in comment.
...
llvm-svn: 144236
2011-11-09 22:45:04 +00:00
Eli Friedman
53218b6fcc
Add check so we don't try to perform an impossible transformation. Fixes issue from PR11319.
...
llvm-svn: 144216
2011-11-09 22:25:12 +00:00
Chad Rosier
2f27fab6ed
The ARM LDRH/STRH instructions use a +/-imm8 encoding, not an imm12.
...
rdar://10418009
llvm-svn: 144213
2011-11-09 21:30:12 +00:00
Nadav Rotem
1938482bfa
AVX2: Add patterns for variable shift operations
...
llvm-svn: 144212
2011-11-09 21:22:13 +00:00
Devang Patel
2f70bcdb94
Remove unnecessary include.
...
llvm-svn: 144211
2011-11-09 21:11:02 +00:00
Chad Rosier
c22f6518b2
Use REs to remove dependencies on the register allocation order.
...
llvm-svn: 144209
2011-11-09 20:06:13 +00:00
Bill Wendling
302d7ce0ab
Reformat the quote and tag the math stuff with <tt> tags.
...
llvm-svn: 144204
2011-11-09 19:33:56 +00:00
Daniel Dunbar
5d9ae5ca23
llvm-config: Drop 'backend' pseudo-component. We don't support/qualify the CBE
...
enough to have this be useful.
llvm-svn: 144202
2011-11-09 19:23:15 +00:00
Daniel Dunbar
7b44212e3c
llvm-config-2: Switch to using real library dependency table.
...
- Also, fix a refacto that left extra "all" component in list (this is now
defined in the groups explicitly)
- Reapply of r143879 now that Make should see needed deps.
llvm-svn: 144201
2011-11-09 19:14:51 +00:00
Eric Christopher
0c7c931dbf
Fix typo.
...
llvm-svn: 144198
2011-11-09 18:53:37 +00:00
Daniel Dunbar
83b700977e
build/Make: Fix some missing dependencies on the llvm-build generation step.
...
llvm-svn: 144197
2011-11-09 18:48:22 +00:00
Benjamin Kramer
966ed1b698
Add comments.
...
llvm-svn: 144194
2011-11-09 18:16:11 +00:00
Duncan Sands
635e4efca0
Speculatively revert commit 144124 (djg) in the hope that the 32 bit
...
dragonegg self-host buildbot will recover (it is complaining about object
files differing between different build stages). Original commit message:
Add a hack to the scheduler to disable pseudo-two-address dependencies in
basic blocks containing calls. This works around a problem in which
these artificial dependencies can get tied up in calling seqeunce
scheduling in a way that makes the graph unschedulable with the current
approach of using artificial physical register dependencies for calling
sequences. This fixes PR11314.
llvm-svn: 144188
2011-11-09 14:20:48 +00:00
Nadav Rotem
79135d844d
Add AVX2 support for vselect of v32i8
...
llvm-svn: 144187
2011-11-09 13:21:28 +00:00
Benjamin Kramer
6312682b46
Simplify code. No functionality change.
...
llvm-svn: 144186
2011-11-09 13:19:15 +00:00
Benjamin Kramer
148db36263
Take advantage of the zero byte in StringMap when emitting dwarf stringpool entries.
...
llvm-svn: 144184
2011-11-09 12:12:04 +00:00
Wojciech Matyjewicz
0c48772aaa
Minor fixes in Makefiles for the OCaml bindings:
...
1. Interface files (.mli) are installed before compiled interface
files (.cmi) to preserve timestamp relation.
2. install-meta should use $(OcamlDir) instead of $(ObjDir).
3. Declared some targets as .PHONY.
Patch by Christophe Raffalli.
llvm-svn: 144183
2011-11-09 12:00:39 +00:00
Craig Topper
f87a2bef51
Enable execution dependency fix pass for YMM registers when AVX2 is enabled. Add AVX2 logical operations to list of replaceable instructions.
...
llvm-svn: 144179
2011-11-09 09:37:21 +00:00
NAKAMURA Takumi
862130c61a
unittests/MultiJITTest.cpp: Tweak how to check symbol value for Win32 --enable-shared.
...
getPointerToNamedFunction might be indirect jump on Win32 --enable-shared.
FF 25 <disp32>: jmp *(pointer to IAT)
llvm-svn: 144178
2011-11-09 08:30:43 +00:00