oota-llvm.git
12 years agoSparc CodeGen: Fix AnalyzeBranch for PR 10282. Removing addSuccessor() since
Venkatraman Govindaraju [Sat, 3 Dec 2011 21:24:48 +0000 (21:24 +0000)]
Sparc CodeGen: Fix AnalyzeBranch for PR 10282. Removing addSuccessor() since
AnalyzeBranch doesn't change the successor, just the order.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145779 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoSimplify code. No functionality change.
Benjamin Kramer [Sat, 3 Dec 2011 16:18:22 +0000 (16:18 +0000)]
Simplify code. No functionality change.

-3% on ARMDissasembler.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145773 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoClear the new cache.
Benjamin Kramer [Sat, 3 Dec 2011 15:19:55 +0000 (15:19 +0000)]
Clear the new cache.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145771 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd a "seen blocks" cache to LVI to avoid a linear scan over the whole cache just...
Benjamin Kramer [Sat, 3 Dec 2011 15:16:45 +0000 (15:16 +0000)]
Add a "seen blocks" cache to LVI to avoid a linear scan over the whole cache just to remove no blocks from the maps.

-15% on ARMDisassembler.cpp (Release build).  It's not that great to add another
layer of caching to the caching-heavy LVI but I don't see a better way.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145770 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoCheck for stack space more intelligently.
Sanjoy Das [Sat, 3 Dec 2011 09:32:07 +0000 (09:32 +0000)]
Check for stack space more intelligently.

libgcc sets the stack limit field in TCB to 256 bytes above the actual
allocated stack limit.  This means if the function's stack frame needs
less than 256 bytes, we can just compare the stack pointer with the
stack limit.  This should result in lesser calls to __morestack.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145766 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix a bug in the x86-32 code generated for segmented stacks.
Sanjoy Das [Sat, 3 Dec 2011 09:21:07 +0000 (09:21 +0000)]
Fix a bug in the x86-32 code generated for segmented stacks.

Currently LLVM pads the call to __morestack with a add and sub of 8
bytes to esp.  This isn't correct since __morestack expects the call
to be followed directly by a ret.

This commit also adjusts the relevant test-case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145765 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoCreating multiple JITs on X86 in multiple threads causes multiple writes (of
Nick Lewycky [Sat, 3 Dec 2011 02:45:50 +0000 (02:45 +0000)]
Creating multiple JITs on X86 in multiple threads causes multiple writes (of
the same value) to this variable. This code could be refactored, but it doesn't
matter since the old JIT is going away. Add tsan annotations to ignore the
race.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145745 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[arm-fast-isel] Unaligned stores of floats require special care.
Chad Rosier [Sat, 3 Dec 2011 02:21:57 +0000 (02:21 +0000)]
[arm-fast-isel] Unaligned stores of floats require special care.
rdar://10510150

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145742 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFixed deadstoreelimination bug where negative indices were incorrectly causing the...
Pete Cooper [Sat, 3 Dec 2011 00:04:30 +0000 (00:04 +0000)]
Fixed deadstoreelimination bug where negative indices were incorrectly causing the optimisation to occur

Turns out long long + unsigned long long is unsigned.  Doh!

Fixes http://llvm.org/bugs/show_bug.cgi?id=11455

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145731 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd support for constant folding the pow intrinsic.
Chad Rosier [Sat, 3 Dec 2011 00:00:03 +0000 (00:00 +0000)]
Add support for constant folding the pow intrinsic.
rdar://10514247

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145730 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoARM NEON VEXT aliases for data type suffices.
Jim Grosbach [Fri, 2 Dec 2011 23:34:39 +0000 (23:34 +0000)]
ARM NEON VEXT aliases for data type suffices.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145726 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoARM VEXT tighten up operand classes a bit.
Jim Grosbach [Fri, 2 Dec 2011 22:57:57 +0000 (22:57 +0000)]
ARM VEXT tighten up operand classes a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145722 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoARM VST1 single lane assembly parsing.
Jim Grosbach [Fri, 2 Dec 2011 22:34:51 +0000 (22:34 +0000)]
ARM VST1 single lane assembly parsing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145718 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTest cases for 64-bit multiplication and division.
Akira Hatanaka [Fri, 2 Dec 2011 22:31:36 +0000 (22:31 +0000)]
Test cases for 64-bit multiplication and division.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145717 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix test cases to use FileCheck.
Akira Hatanaka [Fri, 2 Dec 2011 22:28:09 +0000 (22:28 +0000)]
Fix test cases to use FileCheck.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145716 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMove global variables in TargetMachine into new TargetOptions class. As an API
Nick Lewycky [Fri, 2 Dec 2011 22:16:29 +0000 (22:16 +0000)]
Move global variables in TargetMachine into new TargetOptions class. As an API
change, now you need a TargetOptions object to create a TargetMachine. Clang
patch to follow.

One small functionality change in PTX. PTX had commented out the machine
verifier parts in their copy of printAndVerify. That now calls the version in
LLVMTargetMachine. Users of PTX who need verification disabled should rely on
not passing the command-line flag to enable it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145714 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoARM tests for VLD1 single lane w/ writeback.
Jim Grosbach [Fri, 2 Dec 2011 22:03:52 +0000 (22:03 +0000)]
ARM tests for VLD1 single lane w/ writeback.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145713 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoARM VLD1 single lane assembly parsing.
Jim Grosbach [Fri, 2 Dec 2011 22:01:52 +0000 (22:01 +0000)]
ARM VLD1 single lane assembly parsing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145712 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoARM encoder method needs the physical register number, not the enum.
Jim Grosbach [Fri, 2 Dec 2011 22:01:25 +0000 (22:01 +0000)]
ARM encoder method needs the physical register number, not the enum.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145711 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTargetMachine: document unnamed bool argument
Dylan Noblesmith [Fri, 2 Dec 2011 20:53:57 +0000 (20:53 +0000)]
TargetMachine: document unnamed bool argument

Its meaning was slightly mysterious without looking at
subclasses.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145705 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agounittests: add ErrorStr to ExecutionEngine test
Dylan Noblesmith [Fri, 2 Dec 2011 20:53:53 +0000 (20:53 +0000)]
unittests: add ErrorStr to ExecutionEngine test

Makes failures more self-explanatory.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145704 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[arm-fast-isel] After promoting a function parameter be sure to update the
Chad Rosier [Fri, 2 Dec 2011 20:25:18 +0000 (20:25 +0000)]
[arm-fast-isel] After promoting a function parameter be sure to update the
argument value type.  Otherwise, the sign/zero-extend has no effect on arguments
passed via the stack (i.e., undefined high-order bits).
rdar://10515467

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145701 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agospecify cpu for test to fix failure on some darwin systems with a g4+ cpu
Hal Finkel [Fri, 2 Dec 2011 19:38:17 +0000 (19:38 +0000)]
specify cpu for test to fix failure on some darwin systems with a g4+ cpu

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145699 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoClean up aliases for ARM VLD1 single-lane assembly parsing a bit.
Jim Grosbach [Fri, 2 Dec 2011 18:52:30 +0000 (18:52 +0000)]
Clean up aliases for ARM VLD1 single-lane assembly parsing a bit.

Add the 16-bit lane variants while I'm at it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145693 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix quadratic behavior in InlineFunction by fetching the personality function of...
Benjamin Kramer [Fri, 2 Dec 2011 18:37:31 +0000 (18:37 +0000)]
Fix quadratic behavior in InlineFunction by fetching the personality function of the callee once and not for every invoke in the caller.

The callee is usually smaller than the caller, too. This reduces the compile
time of ARMDisassembler.cpp by 32% (Release build). It still takes ages to
compile though.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145690 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoCheck for error after InstantiateMultclassDef.
Jim Grosbach [Fri, 2 Dec 2011 18:33:03 +0000 (18:33 +0000)]
Check for error after InstantiateMultclassDef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145689 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd XOP feature flag.
Jan Sjödin [Fri, 2 Dec 2011 15:14:37 +0000 (15:14 +0000)]
Add XOP feature flag.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145682 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoReduce duplicate code in isHorizontalBinOp and add some asserts to protect assumptions
Craig Topper [Fri, 2 Dec 2011 08:18:41 +0000 (08:18 +0000)]
Reduce duplicate code in isHorizontalBinOp and add some asserts to protect assumptions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145681 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd instruction selection support for horizontal add/sub of 256-bit floating point...
Craig Topper [Fri, 2 Dec 2011 07:16:01 +0000 (07:16 +0000)]
Add instruction selection support for horizontal add/sub of 256-bit floating point vectors. Also add the test case for 256-bit integer vectors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145680 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoremove unneeded FIXME comment
Hal Finkel [Fri, 2 Dec 2011 04:58:17 +0000 (04:58 +0000)]
remove unneeded FIXME comment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145679 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoadjust the instruction ordering in some PPC tests: changes due to postRA haz. rec.
Hal Finkel [Fri, 2 Dec 2011 04:58:12 +0000 (04:58 +0000)]
adjust the instruction ordering in some PPC tests: changes due to postRA haz. rec.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145678 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agomake sure ScheduleDAGInstrs::EmitSchedule does not crash when the first instruction...
Hal Finkel [Fri, 2 Dec 2011 04:58:07 +0000 (04:58 +0000)]
make sure ScheduleDAGInstrs::EmitSchedule does not crash when the first instruction in Sequence is a Noop

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145677 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoupdate PPC 940 hazard rec. to function in postRA mode
Hal Finkel [Fri, 2 Dec 2011 04:58:02 +0000 (04:58 +0000)]
update PPC 940 hazard rec. to function in postRA mode

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145676 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix a few more places where TargetData/TargetLibraryInfo is not being passed.
Chad Rosier [Fri, 2 Dec 2011 01:26:24 +0000 (01:26 +0000)]
Fix a few more places where TargetData/TargetLibraryInfo is not being passed.
Add FIXMEs to places that are non-trivial to fix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145661 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoARM start parsing VLD1 single lane instructions.
Jim Grosbach [Fri, 2 Dec 2011 00:35:16 +0000 (00:35 +0000)]
ARM start parsing VLD1 single lane instructions.

The alias pseudos need cleaned up for size suffix handling, but this gets
the basics working. Will be cleaning up and adding more.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145655 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAbuse of mass replace isn't warranted even when the build is failing. Thanks
Chad Rosier [Thu, 1 Dec 2011 23:16:03 +0000 (23:16 +0000)]
Abuse of mass replace isn't warranted even when the build is failing.  Thanks
for the suggestion, Eric.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145643 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix build by not assuming TLI is guaranteed. Will have to track down cases where
Chad Rosier [Thu, 1 Dec 2011 22:38:31 +0000 (22:38 +0000)]
Fix build by not assuming TLI is guaranteed. Will have to track down cases where
TLI isn't being passed to ensure we don't miss opportunities to fold calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145641 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoPrevent library calls from being folded if -fno-builtin has been specified.
Chad Rosier [Thu, 1 Dec 2011 22:14:50 +0000 (22:14 +0000)]
Prevent library calls from being folded if -fno-builtin has been specified.
rdar://10500969

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145639 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTableGen: fix CMake build s'more
Dylan Noblesmith [Thu, 1 Dec 2011 21:53:39 +0000 (21:53 +0000)]
TableGen: fix CMake build s'more

Oops, missed another missing file from r145629.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145636 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoCodeGen: fix CMake build
Dylan Noblesmith [Thu, 1 Dec 2011 21:49:23 +0000 (21:49 +0000)]
CodeGen: fix CMake build

Missing file from r145629.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145634 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoExecutionEngine: honor optimization level
Dylan Noblesmith [Thu, 1 Dec 2011 21:49:21 +0000 (21:49 +0000)]
ExecutionEngine: honor optimization level

It was getting ignored after r144788.

Also fix an accidental implicit cast from the OptLevel enum
to an optional bool argument. MSVC warned on this, but gcc
didn't.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145633 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoLast bit of TargetLibraryInfo propagation. Also fixed a case for TargetData
Chad Rosier [Thu, 1 Dec 2011 21:29:16 +0000 (21:29 +0000)]
Last bit of TargetLibraryInfo propagation.  Also fixed a case for TargetData
where it appeared beneficial to pass.
More of rdar://10500969

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145630 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd a deterministic finite automaton based packetizer for VLIW architectures
Anshuman Dasgupta [Thu, 1 Dec 2011 21:10:21 +0000 (21:10 +0000)]
Add a deterministic finite automaton based packetizer for VLIW architectures

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145629 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix unreachable return & simplify some branches.
David Blaikie [Thu, 1 Dec 2011 20:58:30 +0000 (20:58 +0000)]
Fix unreachable return & simplify some branches.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145627 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agollvm-config: Replace with C++ version (was llvm-config-2).
Daniel Dunbar [Thu, 1 Dec 2011 20:18:09 +0000 (20:18 +0000)]
llvm-config: Replace with C++ version (was llvm-config-2).
   - Another reapply of r144300, with hopefully one last fix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145623 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agollvm-config-2: Fix --cflags and --includedir which pointed at the wrong
Daniel Dunbar [Thu, 1 Dec 2011 20:00:19 +0000 (20:00 +0000)]
llvm-config-2: Fix --cflags and --includedir which pointed at the wrong
directory when running from a build directory.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145622 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDummy commit to check commit access.
Sanjoy Das [Thu, 1 Dec 2011 19:15:08 +0000 (19:15 +0000)]
Dummy commit to check commit access.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145619 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoImproved fix for abs(val) != 0 to check other similar case. Also fixed style issues...
Pete Cooper [Thu, 1 Dec 2011 19:13:26 +0000 (19:13 +0000)]
Improved fix for abs(val) != 0 to check other similar case.  Also fixed style issues and confusing comment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145618 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[asan] two minor fixes: use UnreachableInst after the neverreturn function call;...
Kostya Serebryany [Thu, 1 Dec 2011 18:54:53 +0000 (18:54 +0000)]
[asan] two minor fixes: use UnreachableInst after the neverreturn function call; use report_fatal_error when blacklist file can not be found

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145611 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd missing functions.
Chad Rosier [Thu, 1 Dec 2011 18:26:19 +0000 (18:26 +0000)]
Add missing functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145608 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAutodetect bulldozers.
Benjamin Kramer [Thu, 1 Dec 2011 18:24:17 +0000 (18:24 +0000)]
Autodetect bulldozers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145607 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd a few more functions to TargetLibraryInfo. More of rdar://10500969.
Chad Rosier [Thu, 1 Dec 2011 17:54:37 +0000 (17:54 +0000)]
Add a few more functions to TargetLibraryInfo. More of rdar://10500969.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145596 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agofix broken tag
Chris Lattner [Thu, 1 Dec 2011 17:25:28 +0000 (17:25 +0000)]
fix broken tag

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145590 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRevert commit 145449 (ddunbar) since it is breaking the dragonegg buildbots.
Duncan Sands [Thu, 1 Dec 2011 10:50:19 +0000 (10:50 +0000)]
Revert commit 145449 (ddunbar) since it is breaking the dragonegg buildbots.
Original commit message:
llvm-config: Replace with C++ version (was llvm-config-2).
 - Reapply of r144300, with lots of fixes/migration easement in between.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145582 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFor 64-bit the rest of the general regs are ok for the q constraint. Make
Eric Christopher [Thu, 1 Dec 2011 08:12:41 +0000 (08:12 +0000)]
For 64-bit the rest of the general regs are ok for the q constraint. Make
sure we can emit both the high and low versions of those registers.

Fixes rdar://10392864

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145579 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd some missing anchors.
David Blaikie [Thu, 1 Dec 2011 08:00:17 +0000 (08:00 +0000)]
Add some missing anchors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145578 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoPass AVX vectors which are arguments to varargs functions on the stack. <rdar://probl...
Eli Friedman [Thu, 1 Dec 2011 04:49:21 +0000 (04:49 +0000)]
Pass AVX vectors which are arguments to varargs functions on the stack. <rdar://problem/10463281>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145573 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemoved use of grep from test and moved it to be with other icmp tests
Pete Cooper [Thu, 1 Dec 2011 04:35:26 +0000 (04:35 +0000)]
Removed use of grep from test and moved it to be with other icmp tests

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145570 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdded instcombine pattern to spot comparing -val or val against 0.
Pete Cooper [Thu, 1 Dec 2011 03:58:40 +0000 (03:58 +0000)]
Added instcombine pattern to spot comparing -val or val against 0.
(val != 0) == (-val != 0) so "abs(val) != 0" becomes "val != 0"

Fixes <rdar://problem/10482509>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145563 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoPropagate TargetLibraryInfo throughout ConstantFolding.cpp and
Chad Rosier [Thu, 1 Dec 2011 03:08:23 +0000 (03:08 +0000)]
Propagate TargetLibraryInfo throughout ConstantFolding.cpp and
InstructionSimplify.cpp.  Other fixups as needed.
Part of rdar://10500969

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145559 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMake use of "getScalarType()". No functionality change.
Nick Lewycky [Thu, 1 Dec 2011 02:39:36 +0000 (02:39 +0000)]
Make use of "getScalarType()". No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145556 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoSmall fix for assembler generation on Darwin PPC64. Patch by Michael Kostylev. ...
Eli Friedman [Thu, 1 Dec 2011 01:43:47 +0000 (01:43 +0000)]
Small fix for assembler generation on Darwin PPC64.  Patch by Michael Kostylev.  PR11437.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145553 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoReplace an assert() with an actual diagnostic.
Jim Grosbach [Wed, 30 Nov 2011 23:16:25 +0000 (23:16 +0000)]
Replace an assert() with an actual diagnostic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145535 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agomake asan work at -O0, llvm part. Patch by glider@google.com
Kostya Serebryany [Wed, 30 Nov 2011 22:19:26 +0000 (22:19 +0000)]
make asan work at -O0, llvm part. Patch by glider@google.com

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145530 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoSupport for encoding all FMA4 instructions and tablegen patterns for all
Jan Sjödin [Wed, 30 Nov 2011 22:09:42 +0000 (22:09 +0000)]
Support for encoding all FMA4 instructions and tablegen patterns for all
remaining FMA4 instructions and intrinsics with tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145525 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMake GlobalMerge honor the preferred alignment on globals without an explicitly speci...
Eli Friedman [Wed, 30 Nov 2011 21:54:15 +0000 (21:54 +0000)]
Make GlobalMerge honor the preferred alignment on globals without an explicitly specified alignment.

<rdar://problem/10497732>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145523 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMore cleanups. No content change.
Bill Wendling [Wed, 30 Nov 2011 21:52:43 +0000 (21:52 +0000)]
More cleanups. No content change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145522 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMinor cleanup. No content change.
Bill Wendling [Wed, 30 Nov 2011 21:43:43 +0000 (21:43 +0000)]
Minor cleanup. No content change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145521 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove the install-clang-c makefile target.
Bob Wilson [Wed, 30 Nov 2011 21:06:12 +0000 (21:06 +0000)]
Remove the install-clang-c makefile target.

When I did this before it broke a buildbot that was testing that target, but
we've removed that buildbot now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145519 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove an XXX which hasn't been fixed yet. It's too late now.
Bill Wendling [Wed, 30 Nov 2011 20:53:52 +0000 (20:53 +0000)]
Remove an XXX which hasn't been fixed yet. It's too late now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145518 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove unused variable
Matt Beaumont-Gay [Wed, 30 Nov 2011 19:53:11 +0000 (19:53 +0000)]
Remove unused variable

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145517 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd some tests for all-lanes VLD1 parsing.
Jim Grosbach [Wed, 30 Nov 2011 19:37:38 +0000 (19:37 +0000)]
Add some tests for all-lanes VLD1 parsing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145512 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoARM parsing for VLD1 all lanes, with writeback.
Jim Grosbach [Wed, 30 Nov 2011 19:35:44 +0000 (19:35 +0000)]
ARM parsing for VLD1 all lanes, with writeback.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145510 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd a few functions to TargetLibraryInfo.
Chad Rosier [Wed, 30 Nov 2011 19:19:00 +0000 (19:19 +0000)]
Add a few functions to TargetLibraryInfo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145508 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoARM parsing for VLD1 two register all lanes, no writeback.
Jim Grosbach [Wed, 30 Nov 2011 18:21:25 +0000 (18:21 +0000)]
ARM parsing for VLD1 two register all lanes, no writeback.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145504 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd test arch to make it pass on non x86 targets
Nadav Rotem [Wed, 30 Nov 2011 17:34:28 +0000 (17:34 +0000)]
Add test arch to make it pass on non x86 targets

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145498 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoX86: Turns out bulldozer also supports sse42 and lzcnt.
Benjamin Kramer [Wed, 30 Nov 2011 15:48:16 +0000 (15:48 +0000)]
X86: Turns out bulldozer also supports sse42 and lzcnt.

While at it remove the barcelona/instanbul/shanghai subtargets, they're
unsupported by GCC and look pretty broken.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145494 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoX86: Add subtargets for AMD's bulldozer.
Benjamin Kramer [Wed, 30 Nov 2011 15:27:46 +0000 (15:27 +0000)]
X86: Add subtargets for AMD's bulldozer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145493 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd a tripple to the test
Nadav Rotem [Wed, 30 Nov 2011 11:20:56 +0000 (11:20 +0000)]
Add a tripple to the test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145489 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoX86: PerformOrCombine introduced a vselect node with a wrong order of operands. This...
Nadav Rotem [Wed, 30 Nov 2011 10:13:37 +0000 (10:13 +0000)]
X86: PerformOrCombine introduced a vselect node with a wrong order of operands. This bug was introduced when a dedicated blend sdnode was replaced with the vselect node (in 139479).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145488 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd instruction selection support for AVX2 horizontal add/sub instructions.
Craig Topper [Wed, 30 Nov 2011 09:10:50 +0000 (09:10 +0000)]
Add instruction selection support for AVX2 horizontal add/sub instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145487 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMention that -O4 does result in more optimization when used with
Duncan Sands [Wed, 30 Nov 2011 08:46:05 +0000 (08:46 +0000)]
Mention that -O4 does result in more optimization when used with
-fplugin-arg-dragonegg-enable-gcc-optzns, though it usually isn't
a win.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145486 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMerge VPERM2F128/VPERM2I128 ISD node types.
Craig Topper [Wed, 30 Nov 2011 07:47:51 +0000 (07:47 +0000)]
Merge VPERM2F128/VPERM2I128 ISD node types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145485 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoBetter test case found in duplicate PR10570.
Andrew Trick [Wed, 30 Nov 2011 06:26:42 +0000 (06:26 +0000)]
Better test case found in duplicate PR10570.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145484 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMerge decoding of VPERMILPD and VPERMILPS shuffle masks. Merge X86ISD node type for...
Craig Topper [Wed, 30 Nov 2011 06:25:25 +0000 (06:25 +0000)]
Merge decoding of VPERMILPD and VPERMILPS shuffle masks. Merge X86ISD node type for VPERMILPD/PS. Add instruction selection support for VINSERTI128/VEXTRACTI128.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145483 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoLSR: handle the expansion of phi operands that use postinc forms of the IV.
Andrew Trick [Wed, 30 Nov 2011 06:07:54 +0000 (06:07 +0000)]
LSR: handle the expansion of phi operands that use postinc forms of the IV.

Fixes PR11431: SCEVExpander::expandAddRecExprLiterally(const llvm::SCEVAddRecExpr*): Assertion `(!isa<Instruction>(Result) || SE.DT->dominates(cast<Instruction>(Result), Builder.GetInsertPoint())) && "postinc expansion does not dominate use"' failed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145482 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoWhitespace.
Chad Rosier [Wed, 30 Nov 2011 01:59:59 +0000 (01:59 +0000)]
Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145470 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAlphabetize TargetLibraryInfo enum and fix doxygen comments. No functional
Chad Rosier [Wed, 30 Nov 2011 01:51:49 +0000 (01:51 +0000)]
Alphabetize TargetLibraryInfo enum and fix doxygen comments.  No functional
change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145468 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agollvm_unreachable() is not for user diagnostics....
Jim Grosbach [Wed, 30 Nov 2011 01:15:55 +0000 (01:15 +0000)]
llvm_unreachable() is not for user diagnostics....

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145465 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoARM parsing aliases for VLD1 single register all lanes.
Jim Grosbach [Wed, 30 Nov 2011 01:09:44 +0000 (01:09 +0000)]
ARM parsing aliases for VLD1 single register all lanes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145464 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd support for sqrt, sqrtl, and sqrtf in TargetLibraryInfo. Disable
Chad Rosier [Tue, 29 Nov 2011 23:57:10 +0000 (23:57 +0000)]
Add support for sqrt, sqrtl, and sqrtf in TargetLibraryInfo.  Disable
(fptrunc (sqrt (fpext x))) -> (sqrtf x) transformation if -fno-builtin is
specified.
rdar://10466410

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145460 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTidy up a bit.
Jim Grosbach [Tue, 29 Nov 2011 23:51:09 +0000 (23:51 +0000)]
Tidy up a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145458 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd comment.
Jim Grosbach [Tue, 29 Nov 2011 23:33:40 +0000 (23:33 +0000)]
Add comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145456 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoARM parsing aliases for data-size suffices on VST1.
Jim Grosbach [Tue, 29 Nov 2011 23:21:31 +0000 (23:21 +0000)]
ARM parsing aliases for data-size suffices on VST1.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145454 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFileCheckize.
Jakob Stoklund Olesen [Tue, 29 Nov 2011 23:09:16 +0000 (23:09 +0000)]
FileCheckize.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145452 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoChange names for MIPS "generic" processors defined in Mips.td to match what GNU
Akira Hatanaka [Tue, 29 Nov 2011 23:08:41 +0000 (23:08 +0000)]
Change names for MIPS "generic" processors defined in Mips.td to match what GNU
tools use. Patch by Simon Atanasyan.

"mips32r1" => "mips32"
"4ke" => mips32r2"
"mips64r1" => "mips64"

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145451 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoARM assembly parsing and encoding for four-register VST1.
Jim Grosbach [Tue, 29 Nov 2011 22:58:48 +0000 (22:58 +0000)]
ARM assembly parsing and encoding for four-register VST1.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145450 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agollvm-config: Replace with C++ version (was llvm-config-2).
Daniel Dunbar [Tue, 29 Nov 2011 22:56:31 +0000 (22:56 +0000)]
llvm-config: Replace with C++ version (was llvm-config-2).
 - Reapply of r144300, with lots of fixes/migration easement in between.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145449 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd another missing pattern. llvm-gcc likes f64 but clang likes i64 so it was generat...
Evan Cheng [Tue, 29 Nov 2011 22:48:34 +0000 (22:48 +0000)]
Add another missing pattern. llvm-gcc likes f64 but clang likes i64 so it was generating poor code for some SSE builtins.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145448 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoEnable some VST1 tests and add a few more.
Jim Grosbach [Tue, 29 Nov 2011 22:40:32 +0000 (22:40 +0000)]
Enable some VST1 tests and add a few more.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145443 91177308-0d34-0410-b5e6-96231b3b80d8