Chad Rosier [Fri, 11 Nov 2011 00:36:21 +0000 (00:36 +0000)]
Add support for using MVN to materialize negative constants.
rdar://
10412592
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144348
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 11 Nov 2011 00:28:42 +0000 (00:28 +0000)]
Disable compact unwind generation until I can solve the codegen problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144346
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 11 Nov 2011 00:24:00 +0000 (00:24 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144345
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 11 Nov 2011 00:23:56 +0000 (00:23 +0000)]
LLVMBuild: Add explicit information on whether targets define an assembly printer, assembly parser, or disassembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144344
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 10 Nov 2011 23:58:34 +0000 (23:58 +0000)]
Thumb2 ldm/stm updating w/ one register in the list are LDR/STR.
rdar://
10429490
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144338
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 10 Nov 2011 23:42:14 +0000 (23:42 +0000)]
ARM let processInstruction() tranforms chain.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144337
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolas Geoffray [Thu, 10 Nov 2011 23:37:56 +0000 (23:37 +0000)]
Add blurb for VMKit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144336
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 23:33:20 +0000 (23:33 +0000)]
build/Make: llvm-config-2 needs to use EXEEXT, since it is an actual executable
now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144335
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 23:33:18 +0000 (23:33 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144334
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 10 Nov 2011 23:17:11 +0000 (23:17 +0000)]
Thumb2 parsing for push/pop w/ hi registers in the reglist.
rdar://
10130228.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144331
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 10 Nov 2011 23:01:27 +0000 (23:01 +0000)]
Thumb1 diagnostics for reglist on PUSH/POP fix.
Was not checking the first register in the register list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144329
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 22:55:50 +0000 (22:55 +0000)]
git: Add tools/lldb to the ignore list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144328
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 10 Nov 2011 22:34:29 +0000 (22:34 +0000)]
Check in getOrCreateSubprogramDIE if a declaration exists and if so output
it first.
This is a more general fix to pr11300.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144324
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 22:11:04 +0000 (22:11 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144323
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 10 Nov 2011 22:10:12 +0000 (22:10 +0000)]
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144322
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 22:00:37 +0000 (22:00 +0000)]
build/MBlazeDisassembler: Some compilers may generate an MBlaze disassembler
that depends on MBlazeCodeGen. This is a layering violation that should really
be fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144321
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 22:00:34 +0000 (22:00 +0000)]
build/MCDisassembler: Fix required libraries list of MCDisassembler to use
all-targets instead of an explicit list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144320
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 10 Nov 2011 21:47:55 +0000 (21:47 +0000)]
Make types and namespaces take multiple DIEs for the accelerator tables
as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144319
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 10 Nov 2011 21:12:28 +0000 (21:12 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144317
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 10 Nov 2011 21:09:49 +0000 (21:09 +0000)]
When in ARM mode, LDRH/STRH require special handling of negative offsets.
For correctness, disable this for now.
rdar://
10418009
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144316
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 10 Nov 2011 20:48:53 +0000 (20:48 +0000)]
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144315
91177308-0d34-0410-b5e6-
96231b3b80d8
Tony Linthicum [Thu, 10 Nov 2011 20:39:51 +0000 (20:39 +0000)]
test commit undo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144314
91177308-0d34-0410-b5e6-
96231b3b80d8
Tony Linthicum [Thu, 10 Nov 2011 20:23:28 +0000 (20:23 +0000)]
test commit redux
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144313
91177308-0d34-0410-b5e6-
96231b3b80d8
Pete Cooper [Thu, 10 Nov 2011 20:22:08 +0000 (20:22 +0000)]
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>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144312
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 10 Nov 2011 20:15:40 +0000 (20:15 +0000)]
random notes, llvm-gcc is gone, fix a few broken tags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144311
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 19:59:35 +0000 (19:59 +0000)]
Revert r144300 "llvm-config: Replace with C++ version (was llvm-config-2).",
which didn't appear ready for prime time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144309
91177308-0d34-0410-b5e6-
96231b3b80d8
Tony Linthicum [Thu, 10 Nov 2011 19:58:22 +0000 (19:58 +0000)]
undo test commit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144308
91177308-0d34-0410-b5e6-
96231b3b80d8
Tony Linthicum [Thu, 10 Nov 2011 19:58:03 +0000 (19:58 +0000)]
test commit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144307
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 10 Nov 2011 19:52:58 +0000 (19:52 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144306
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 10 Nov 2011 19:25:34 +0000 (19:25 +0000)]
Rework adding function names to the dwarf accelerator tables, allow
multiple dies per function and support C++ basenames.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144304
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 10 Nov 2011 19:25:09 +0000 (19:25 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144303
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 10 Nov 2011 19:18:01 +0000 (19:18 +0000)]
ARM assembly parsing for LSR/LSL/ROR(immediate).
More of rdar://
9704684
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144301
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 18:49:59 +0000 (18:49 +0000)]
llvm-config: Replace with C++ version (was llvm-config-2).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144300
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 18:49:50 +0000 (18:49 +0000)]
llvm-config-2: Use USEDLIBS directly instead of LINK_COMPONENTS, which will
require this tool to resolve (currently).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144299
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 10 Nov 2011 18:44:29 +0000 (18:44 +0000)]
Release notes for DragonEgg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144298
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 10 Nov 2011 16:44:55 +0000 (16:44 +0000)]
ARM assembly parsing for ASR(immediate).
Start of rdar://
9704684
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144293
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 15:35:14 +0000 (15:35 +0000)]
build: Rename CBackend and CppBackend libraries to have CodeGen suffix, for
consistency with other targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144292
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 14:53:23 +0000 (14:53 +0000)]
llvm-config-2: Fix thinko in maintenance of visited component set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144291
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Thu, 10 Nov 2011 14:18:59 +0000 (14:18 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144290
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 10 Nov 2011 07:43:16 +0000 (07:43 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144267
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Thu, 10 Nov 2011 06:54:20 +0000 (06:54 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144266
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 10 Nov 2011 01:30:39 +0000 (01:30 +0000)]
For immediate encodings of icmp, zero or sign extend first. Then
determine if the value is negative and flip the sign accordingly.
rdar://
10422026
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144258
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 01:16:48 +0000 (01:16 +0000)]
build/Make & CMake: Pass the appropriate --native-target and --enable-targets
options to llvm-build, so the all-targets etc. components are defined properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144255
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 00:50:07 +0000 (00:50 +0000)]
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".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144253
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 00:49:58 +0000 (00:49 +0000)]
llvm-build: Split out the validation logic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144252
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 00:49:55 +0000 (00:49 +0000)]
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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144251
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 00:49:51 +0000 (00:49 +0000)]
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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144250
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 10 Nov 2011 00:49:42 +0000 (00:49 +0000)]
llvm-build: Tidy up options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144249
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 10 Nov 2011 00:17:03 +0000 (00:17 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144247
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 10 Nov 2011 00:07:22 +0000 (00:07 +0000)]
Remove this from the CMake build since I erased the file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144245
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 10 Nov 2011 00:02:33 +0000 (00:02 +0000)]
Tidy up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144244
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 9 Nov 2011 23:56:06 +0000 (23:56 +0000)]
Remove the old-style ARM disassembler, which is no longer used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144243
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 9 Nov 2011 23:44:23 +0000 (23:44 +0000)]
Thumb2 assembly parsing STMDB w/ optional .w suffix.
rdar://
10422955
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144242
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 9 Nov 2011 23:36:02 +0000 (23:36 +0000)]
Make sure we correctly unroll conversions between v2f64 and v2i32 on ARM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144241
91177308-0d34-0410-b5e6-
96231b3b80d8
Pete Cooper [Wed, 9 Nov 2011 23:07:35 +0000 (23:07 +0000)]
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>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144239
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 9 Nov 2011 22:45:04 +0000 (22:45 +0000)]
Fix typo in comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144236
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 9 Nov 2011 22:25:12 +0000 (22:25 +0000)]
Add check so we don't try to perform an impossible transformation. Fixes issue from PR11319.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144216
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 9 Nov 2011 21:30:12 +0000 (21:30 +0000)]
The ARM LDRH/STRH instructions use a +/-imm8 encoding, not an imm12.
rdar://
10418009
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144213
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Wed, 9 Nov 2011 21:22:13 +0000 (21:22 +0000)]
AVX2: Add patterns for variable shift operations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144212
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 9 Nov 2011 21:11:02 +0000 (21:11 +0000)]
Remove unnecessary include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144211
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 9 Nov 2011 20:06:13 +0000 (20:06 +0000)]
Use REs to remove dependencies on the register allocation order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144209
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 9 Nov 2011 19:33:56 +0000 (19:33 +0000)]
Reformat the quote and tag the math stuff with <tt> tags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144204
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 9 Nov 2011 19:23:15 +0000 (19:23 +0000)]
llvm-config: Drop 'backend' pseudo-component. We don't support/qualify the CBE
enough to have this be useful.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144202
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 9 Nov 2011 19:14:51 +0000 (19:14 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144201
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 9 Nov 2011 18:53:37 +0000 (18:53 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144198
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 9 Nov 2011 18:48:22 +0000 (18:48 +0000)]
build/Make: Fix some missing dependencies on the llvm-build generation step.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144197
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 9 Nov 2011 18:16:11 +0000 (18:16 +0000)]
Add comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144194
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 9 Nov 2011 14:20:48 +0000 (14:20 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144188
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Wed, 9 Nov 2011 13:21:28 +0000 (13:21 +0000)]
Add AVX2 support for vselect of v32i8
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144187
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 9 Nov 2011 13:19:15 +0000 (13:19 +0000)]
Simplify code. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144186
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 9 Nov 2011 12:12:04 +0000 (12:12 +0000)]
Take advantage of the zero byte in StringMap when emitting dwarf stringpool entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144184
91177308-0d34-0410-b5e6-
96231b3b80d8
Wojciech Matyjewicz [Wed, 9 Nov 2011 12:00:39 +0000 (12:00 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144183
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 9 Nov 2011 09:37:21 +0000 (09:37 +0000)]
Enable execution dependency fix pass for YMM registers when AVX2 is enabled. Add AVX2 logical operations to list of replaceable instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144179
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 9 Nov 2011 08:30:43 +0000 (08:30 +0000)]
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)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144178
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 9 Nov 2011 08:06:13 +0000 (08:06 +0000)]
Add instruction selection for AVX2 integer comparisons.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144176
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 9 Nov 2011 07:28:55 +0000 (07:28 +0000)]
Add AVX2 instruction lowering for add, sub, and mul.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144174
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 9 Nov 2011 07:11:37 +0000 (07:11 +0000)]
Don't forget to check FlagNW when determining whether an AddRecExpr will wrap
or not. Patch by Brendon Cahoon!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144173
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 9 Nov 2011 06:20:49 +0000 (06:20 +0000)]
Remove extra ';'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144172
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 9 Nov 2011 05:24:07 +0000 (05:24 +0000)]
Remove the pubnames section, no one consumes it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144169
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 9 Nov 2011 04:16:01 +0000 (04:16 +0000)]
Enhance verifyLoop so that it can reliably verify that every block in a loop is reachable from the loop header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144166
91177308-0d34-0410-b5e6-
96231b3b80d8
John McCall [Wed, 9 Nov 2011 03:26:50 +0000 (03:26 +0000)]
Use isa<> instead of dyn_cast<> as suggested by Nick.
Should've read the patch a bit closer, sorry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144164
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 9 Nov 2011 03:22:02 +0000 (03:22 +0000)]
Add support for encoding immediates in icmp and fcmp. Hopefully, this will
remove a fair number of unnecessary materialized constants.
rdar://
10412592
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144163
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 9 Nov 2011 01:57:03 +0000 (01:57 +0000)]
Hide cpu name checking in ARMSubtarget.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144154
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 9 Nov 2011 01:06:56 +0000 (01:06 +0000)]
Collapse DomainValues across loop back-edges.
During the initial RPO traversal of the basic blocks, remember the ones
that are incomplete because of back-edges from predecessors that haven't
been visited yet.
After the initial RPO, revisit all those loop headers so the incoming
DomainValues on the back-edges can be properly collapsed.
This will properly fix execution domains on software pipelined code,
like the included test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144151
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 9 Nov 2011 00:06:18 +0000 (00:06 +0000)]
Link to the live DomainValue after merging.
When merging two uncollapsed DomainValues, place a link to the active
DomainValue from the passive DomainValue. This allows old stale
references to the passive DomainValue to be updated to point to the
active DomainValue.
The new resolve() function finds the active DomainValue and updates the
pointer.
This change makes old live-out lists more useful since they may contain
uncollapsed DomainValues that have since been merged into other
DomainValues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144149
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Tue, 8 Nov 2011 23:34:07 +0000 (23:34 +0000)]
Object/COFF: Fix PE reading.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144148
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 8 Nov 2011 23:26:00 +0000 (23:26 +0000)]
Track reference count independently from clear().
This allows clear() to be called on a DomainValue with references.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144147
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Tue, 8 Nov 2011 22:26:47 +0000 (22:26 +0000)]
Properly handle Mips MC relocations and lower cpload and cprestore macros to MCInsts.
Patch by Jack Carter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144139
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 8 Nov 2011 22:23:43 +0000 (22:23 +0000)]
Emit the compact unwind *if* we have a compact unwind encoding.
*headdesk*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144138
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 8 Nov 2011 22:05:17 +0000 (22:05 +0000)]
Call release() directly when cleaning up the remaining DomainValues.
There is no need to involve the LiveRegs array and kill() any longer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144133
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 8 Nov 2011 21:57:47 +0000 (21:57 +0000)]
Rename all methods to follow style guide.
No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144132
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 8 Nov 2011 21:57:44 +0000 (21:57 +0000)]
Handle reference counts in one function: release().
This new function will decrement the reference count, and collapse a
domain value when the last reference is gone.
This simplifies DomainValue reference counting, and decouples it from
the LiveRegs array.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144131
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 8 Nov 2011 21:56:23 +0000 (21:56 +0000)]
Also add the linkage name to the name accelerator tables if it exists
and is different than the normal name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144130
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 8 Nov 2011 21:29:06 +0000 (21:29 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144124
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 8 Nov 2011 21:21:09 +0000 (21:21 +0000)]
Add workaround for Cortex-M3 errata 602117 by replacing ldrd x, y, [x] with ldm or ldr pairs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144123
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 8 Nov 2011 21:12:00 +0000 (21:12 +0000)]
ARMFastISel doesn't support thumb1. Rename isThumb to isThumb2 to reflect this.
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144122
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 8 Nov 2011 21:08:02 +0000 (21:08 +0000)]
Fix code to match comment. Fixes PR11340, a regression from r143209.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144121
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 8 Nov 2011 20:57:04 +0000 (20:57 +0000)]
Clear old DomainValue after merging.
The old value may still be referenced by some live-out list, and we
don't wan't to collapse those instructions twice.
This fixes the "Can only swizzle VMOVD" assertion in some armv7 SPEC
builds.
<rdar://problem/
10413292>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144117
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Tue, 8 Nov 2011 19:52:32 +0000 (19:52 +0000)]
MC/COFF: Correctly emit the size of an empty string table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144111
91177308-0d34-0410-b5e6-
96231b3b80d8
Pete Cooper [Tue, 8 Nov 2011 19:30:00 +0000 (19:30 +0000)]
LICM pass now understands invariant load metadata. Nothing generates this yet so it will currently never get used in real tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144107
91177308-0d34-0410-b5e6-
96231b3b80d8