oota-llvm.git
10 years agoRemove unused HasFROperands field from disassembler.
Craig Topper [Thu, 2 Jan 2014 18:44:21 +0000 (18:44 +0000)]
Remove unused HasFROperands field from disassembler.

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

10 years agoUse LLVM_STATIC_ASSERT rather than a hand-rolled implementation.
David Blaikie [Thu, 2 Jan 2014 18:29:40 +0000 (18:29 +0000)]
Use LLVM_STATIC_ASSERT rather than a hand-rolled implementation.

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

10 years agoMark PUSHFS64/PUSHGS64/POPFS64/POPGS64 as In64BitMode and remove the hack from the...
Craig Topper [Thu, 2 Jan 2014 18:20:48 +0000 (18:20 +0000)]
Mark PUSHFS64/PUSHGS64/POPFS64/POPGS64 as In64BitMode and remove the hack from the disassembler table builder.

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

10 years agoRemove unnecessary stirng comparison from disassembler.
Craig Topper [Thu, 2 Jan 2014 17:41:40 +0000 (17:41 +0000)]
Remove unnecessary stirng comparison from disassembler.

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

10 years agoMark all x86 Int_ and _Int patterns as isCodeGenOnly so the disassembler table builde...
Craig Topper [Thu, 2 Jan 2014 17:28:14 +0000 (17:28 +0000)]
Mark all x86 Int_ and _Int patterns as isCodeGenOnly so the disassembler table builder doesn't need to string match them to exclude them.

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

10 years agoRemove CMake-Xcode hack that symlinked llvm-config into a common place.
Douglas Gregor [Thu, 2 Jan 2014 16:30:55 +0000 (16:30 +0000)]
Remove CMake-Xcode hack that symlinked llvm-config into a common place.

When building Clang separately from LLVM with CMake, one should set
the path of llvm-config via the cache variable LLVM_CONFIG.

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

10 years ago[arm] Add softvfp to supported FPU names.
Logan Chien [Thu, 2 Jan 2014 15:50:02 +0000 (15:50 +0000)]
[arm] Add softvfp to supported FPU names.

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

10 years agoMake the ARM ABI selectable via SubtargetFeature.
Rafael Espindola [Thu, 2 Jan 2014 13:40:08 +0000 (13:40 +0000)]
Make the ARM ABI selectable via SubtargetFeature.

This patch makes it possible to select the ABI with -mattr. It will be used to
forward clang's -target-abi option to llvm's CodeGen.

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

10 years agoSupport LLVM_STATIC_ASSERT() in clang pre-C++11 mode
Alp Toker [Thu, 2 Jan 2014 04:07:41 +0000 (04:07 +0000)]
Support LLVM_STATIC_ASSERT() in clang pre-C++11 mode

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

10 years agoRemove unused function argument.
Craig Topper [Thu, 2 Jan 2014 03:58:45 +0000 (03:58 +0000)]
Remove unused function argument.

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

10 years agoBasicAA: Fix value equality and phi cycles
Arnold Schwaighofer [Thu, 2 Jan 2014 03:31:36 +0000 (03:31 +0000)]
BasicAA: Fix value equality and phi cycles

When there are cycles in the value graph we have to be careful interpreting
"Value*" identity as "value" equivalence. We interpret the value of a phi node
as the value of its operands.
When we check for value equivalence now we make sure that the "Value*" dominates
all cycles (phis).

%0 = phi [%noaliasval, %addr2]
%l = load %ptr
%addr1 = gep @a, 0, %l
%addr2 = gep @a, 0, (%l + 1)
store %ptr ...

Before this patch we would return NoAlias for (%0, %addr1) which is wrong
because the value of the load is from different iterations of the loop.

Tested on x86_64 -mavx at O3 and O3 -flto with no performance or compile time
regressions.

PR18068
radar://15653794

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

10 years agoRename 'assert' to something less loaded in CompileAssertHasType
Alp Toker [Wed, 1 Jan 2014 23:34:16 +0000 (23:34 +0000)]
Rename 'assert' to something less loaded in CompileAssertHasType

Suggested by Aaron Ballman.

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

10 years agoRemove the 's' DataLayout specification
Rafael Espindola [Wed, 1 Jan 2014 22:29:43 +0000 (22:29 +0000)]
Remove the 's' DataLayout specification

During the years there have been some attempts at figuring out how to
align byval arguments. A look at the commit log suggests that they
were

* Use the ABI alignment.
* When that was not sufficient for x86-64, I added the 's' specification to
  DataLayout.
* When that was not sufficient Evan added the virtual getByValTypeAlignment.
* When even that was not sufficient, we just got the FE to add the alignment
  to the byval.

This patch is just a simple cleanup that removes my first attempt at fixing the
problem. I also added an AArch64 implementation of getByValTypeAlignment to
make sure this patch is a nop. I also left the 's' parsing for backward
compatibility.

I will send a short email to llvmdev about the change for anyone maintaining
an out of tree target.

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

10 years ago[Sparc] Handle atomic loads/stores in sparc backend.
Venkatraman Govindaraju [Wed, 1 Jan 2014 22:11:54 +0000 (22:11 +0000)]
[Sparc] Handle atomic loads/stores in sparc backend.

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

10 years agoRemove modifierType/Base from X86 disassembler tables as they are no longer used...
Craig Topper [Wed, 1 Jan 2014 21:52:57 +0000 (21:52 +0000)]
Remove modifierType/Base from X86 disassembler tables as they are no longer used. Removes ~11.5K from static tables.

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

10 years ago[SparcV9]: Custom lower UMULO/SMULO so that the arguments are send to __multi3()...
Venkatraman Govindaraju [Wed, 1 Jan 2014 20:22:45 +0000 (20:22 +0000)]
[SparcV9]: Custom lower UMULO/SMULO so that the arguments are send to __multi3() in correct order.

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

10 years ago[SparcV9]: Use SRL instead of SLL to clear top 32-bits in ctpop:i32. SLL does not...
Venkatraman Govindaraju [Wed, 1 Jan 2014 19:00:10 +0000 (19:00 +0000)]
[SparcV9]: Use SRL instead of SLL to clear top 32-bits in ctpop:i32. SLL does not clear top 32 bit, only SRL does.

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

10 years agoX86Disassembler.cpp: Prune stray @return on translateFPRegister(). [-Wdocumentation]
NAKAMURA Takumi [Wed, 1 Jan 2014 16:19:26 +0000 (16:19 +0000)]
X86Disassembler.cpp: Prune stray @return on translateFPRegister(). [-Wdocumentation]

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

10 years agoRemove need for MODIFIER_OPCODE in the disassembler tables. AddRegFrms are really...
Craig Topper [Wed, 1 Jan 2014 15:29:32 +0000 (15:29 +0000)]
Remove need for MODIFIER_OPCODE in the disassembler tables. AddRegFrms are really more like OrRegFrm so we don't need a difference since we can just mask bits.

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

10 years agoAVX-512: Added intrinsics for vcvt, vcvtt, vrndscale, vcmp
Elena Demikhovsky [Wed, 1 Jan 2014 15:12:34 +0000 (15:12 +0000)]
AVX-512: Added intrinsics for vcvt, vcvtt, vrndscale, vcmp
Printing rounding control.
Enncoding for EVEX_RC (rounding control).

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

10 years agoSecond attempt at Removing special form of AddRegFrm used by FP instructions. These...
Craig Topper [Wed, 1 Jan 2014 14:22:37 +0000 (14:22 +0000)]
Second attempt at Removing special form of AddRegFrm used by FP instructions. These instructions can be handled by MRMXr instead.

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

10 years agoUpdate the copyright credits -- Happy new year 2014!
NAKAMURA Takumi [Wed, 1 Jan 2014 08:27:31 +0000 (08:27 +0000)]
Update the copyright credits -- Happy new year 2014!

FIXME: Dragonegg may be updated at non-trivial changes.

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

10 years agoSilence g++ 4.9 build issue in unit tests
Alp Toker [Wed, 1 Jan 2014 06:57:01 +0000 (06:57 +0000)]
Silence g++ 4.9 build issue in unit tests

Stopgap measure until we can just use static_assert().

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

10 years agoAdd two fp test cases I missed in my previous commit.
Craig Topper [Tue, 31 Dec 2013 23:15:19 +0000 (23:15 +0000)]
Add two fp test cases I missed in my previous commit.

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

10 years agoAdd more X86 FP stack disassembler test cases.
Craig Topper [Tue, 31 Dec 2013 22:51:53 +0000 (22:51 +0000)]
Add more X86 FP stack disassembler test cases.

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

10 years agoFold vector selects with undef elements in the condition. Fixes PR18319.
Nick Lewycky [Tue, 31 Dec 2013 19:30:47 +0000 (19:30 +0000)]
Fold vector selects with undef elements in the condition. Fixes PR18319.
Patch by Ilia Filippov!

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

10 years agoRevert r198238 and add FP disassembler tests. It didn't work and I didn't realized...
Craig Topper [Tue, 31 Dec 2013 17:21:44 +0000 (17:21 +0000)]
Revert r198238 and add FP disassembler tests. It didn't work and I didn't realized we had no FP disassembler test cases.

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

10 years agoRemove old comment referring to an argument that no longer exists.
Craig Topper [Tue, 31 Dec 2013 15:29:14 +0000 (15:29 +0000)]
Remove old comment referring to an argument that no longer exists.

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

10 years agoFix misaligned indentation in "if" block in MipsMCCodeEmitter.cpp
Mark Seaborn [Tue, 31 Dec 2013 13:05:15 +0000 (13:05 +0000)]
Fix misaligned indentation in "if" block in MipsMCCodeEmitter.cpp

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

10 years agoAdd missing MRM_XX forms to the old JIT emitter for consistency.
Craig Topper [Tue, 31 Dec 2013 03:26:24 +0000 (03:26 +0000)]
Add missing MRM_XX forms to the old JIT emitter for consistency.

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

10 years agoRemove MRMInitReg form now that it's last use is gone.
Craig Topper [Tue, 31 Dec 2013 03:19:03 +0000 (03:19 +0000)]
Remove MRMInitReg form now that it's last use is gone.

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

10 years agoSilence g++ 4.9 build issue
Alp Toker [Tue, 31 Dec 2013 03:16:55 +0000 (03:16 +0000)]
Silence g++ 4.9 build issue

lib/Support/ThreadLocal.cpp:53:15: error: typedef 'SIZE_TOO_BIG' locally defined but not used [-Werror=unused-local-typedefs]
   typedef int SIZE_TOO_BIG[sizeof(pthread_key_t) <= sizeof(data) ? 1 : -1];

Done the C++11 way, switching on and using LLVM_STATIC_ASSERT() instead of LLVM_ATTRIBUTE_UNUSED.

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

10 years agoHandle MOV32r0 in expandPostRAPseudo instead of MCInst lowering. No functional change...
Craig Topper [Tue, 31 Dec 2013 03:05:38 +0000 (03:05 +0000)]
Handle MOV32r0 in expandPostRAPseudo instead of MCInst lowering. No functional change intended.

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

10 years agoMerge case statements to remove redundant code.
Craig Topper [Mon, 30 Dec 2013 19:47:49 +0000 (19:47 +0000)]
Merge case statements to remove redundant code.

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

10 years agoRemove special form of AddRegFrm used by FP instructions. These instructions can...
Craig Topper [Mon, 30 Dec 2013 19:16:48 +0000 (19:16 +0000)]
Remove special form of AddRegFrm used by FP instructions. These instructions can be handled by MRMXr instead.

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

10 years agoARM IAS: account for predicated pre-UAL mnemonics
Saleem Abdulrasool [Mon, 30 Dec 2013 18:38:01 +0000 (18:38 +0000)]
ARM IAS: account for predicated pre-UAL mnemonics

Checking the trailing letter of the mnemonic is insufficient.  Be more thorough
in the scanning of the instruction to ensure that we correctly work with the
predicated mnemonics.

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

10 years agoRefactor and reduce code duplication for non-split dwarf strings.
Eric Christopher [Mon, 30 Dec 2013 18:32:31 +0000 (18:32 +0000)]
Refactor and reduce code duplication for non-split dwarf strings.

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

10 years agoRemove EscapeFilter. It's funcionality can be covered by correctly using ExtendedFilt...
Craig Topper [Mon, 30 Dec 2013 17:37:10 +0000 (17:37 +0000)]
Remove EscapeFilter. It's funcionality can be covered by correctly using ExtendedFilter and ExactFilter. No functional change.

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

10 years agoRevert r198208 and reapply:
Eric Christopher [Mon, 30 Dec 2013 17:22:27 +0000 (17:22 +0000)]
Revert r198208 and reapply:

      r198196: Use a pointer to keep track of the skeleton unit for each normal unit and construct it up front.
      r198199: Reapply r198196 with a fix to zero initialize the skeleton pointer.
      r198202: Fix aranges and split dwarf by ensuring that the symbol and relocation back to the compile unit from the aranges section is to the skeleton unit and not the one in the dwo.

with a fix to use integer 0 for DW_AT_low_pc since the relocation to the text section symbol was causing issues with COFF. Accordingly remove addLocalLabelAddress and machinery since we're not currently using it.

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

10 years agoSimplify filter accepts function to just return 'condition' instead of branching...
Craig Topper [Mon, 30 Dec 2013 17:22:20 +0000 (17:22 +0000)]
Simplify filter accepts function to just return 'condition' instead of branching to return true/false. No functional change.

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

10 years agoRevert r198199 (and r198202). It broke 3 DebugInfo tests for targeting i686-cygming.
NAKAMURA Takumi [Mon, 30 Dec 2013 09:26:10 +0000 (09:26 +0000)]
Revert r198199 (and r198202). It broke 3 DebugInfo tests for targeting i686-cygming.

  r198196: Use a pointer to keep track of the skeleton unit for each normal unit and construct it up front.
  r198199: Reapply r198196 with a fix to zero initialize the skeleton pointer.
  r198202: Fix aranges and split dwarf by ensuring that the symbol and relocation back to the compile unit from the aranges section is to the skeleton unit and not the one in the dwo.

They could be reproducible with explicit target.

  llvm/lib/MC/WinCOFFObjectWriter.cpp:224: bool {anonymous}::COFFSymbol::should_keep() const: Assertion `Section->Number != -1 && "Sections with relocations must be real!"' failed.

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

10 years ago[CMake] Generate ${BUILD_MODE}/llvm-lit for each ${CMAKE_CONFIGURATION_TYPES}.
NAKAMURA Takumi [Mon, 30 Dec 2013 07:02:12 +0000 (07:02 +0000)]
[CMake] Generate ${BUILD_MODE}/llvm-lit for each ${CMAKE_CONFIGURATION_TYPES}.

llvm-lit can be invoked;

  $ Release/bin/llvm-lit

instead of;

  $ bin/llvm-lit --param buid_mode=Release

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

10 years ago[CMake][VS][XCode] Restruct the output directory layout more comfortable, ${BINARY_DI...
NAKAMURA Takumi [Mon, 30 Dec 2013 06:48:30 +0000 (06:48 +0000)]
[CMake][VS][XCode] Restruct the output directory layout more comfortable, ${BINARY_DIR}/${BUILD_MODE}/(bin|lib)

We have been seeing nasty directory layout with CMake multiconfig, such as,
  bin/Release/clang.exe
  lib/clang/3.x/...
  lib/Release/clang/3.x/.. (duplicated)

Move the layout similar to autoconf's;
  Release/bin/clang.exe
  Release/lib/clang/3.x/...

Checked on Visual Studio 10. Could you guys please confirm my change on XCode(and other multiconfig builders)?

Note: Don't set variables CMAKE_*_OUTPUT_DIRECTORY any more, or a certain builder, for eaxample, msbuild.exe, would be confused.

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

10 years ago Visual C++ does not support -ffunction-sections -fdata-sections.
Yaron Keren [Mon, 30 Dec 2013 05:31:53 +0000 (05:31 +0000)]
 Visual C++ does not support -ffunction-sections -fdata-sections.

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

10 years agoFix aranges and split dwarf by ensuring that the symbol and relocation
Eric Christopher [Mon, 30 Dec 2013 05:25:49 +0000 (05:25 +0000)]
Fix aranges and split dwarf by ensuring that the symbol and relocation
back to the compile unit from the aranges section is to the skeleton
unit and not the one in the dwo.

Do this by adding a method to grab a forwarded on local sym and local
section by querying the skeleton if one exists and using that. Add
a few tests to verify the relocations are back to the correct section.

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

10 years agoKeep comment with 'Subtarget' ivar.
Bill Wendling [Mon, 30 Dec 2013 05:17:29 +0000 (05:17 +0000)]
Keep comment with 'Subtarget' ivar.

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

10 years agoReapply r198196 with a fix to zero initialize the skeleton pointer.
Eric Christopher [Mon, 30 Dec 2013 03:40:32 +0000 (03:40 +0000)]
Reapply r198196 with a fix to zero initialize the skeleton pointer.

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

10 years agoPort r198087 and r198089 (strip dead code by default) from make to cmake.
Nico Weber [Mon, 30 Dec 2013 03:36:05 +0000 (03:36 +0000)]
Port r198087 and r198089 (strip dead code by default) from make to cmake.

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

10 years agoTemporarily revert "Use a pointer to keep track of the skeleton unit for
Eric Christopher [Mon, 30 Dec 2013 03:12:31 +0000 (03:12 +0000)]
Temporarily revert "Use a pointer to keep track of the skeleton unit for
each normal unit" as it seems to be causing problems in the asan tests.

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

10 years agoUse a pointer to keep track of the skeleton unit for each normal unit
Eric Christopher [Mon, 30 Dec 2013 03:02:12 +0000 (03:02 +0000)]
Use a pointer to keep track of the skeleton unit for each normal unit
and construct it up front. Add address ranges at the end and a helper
routine so that we're not needlessly using an indirction in the case
of split dwarf.

Update testcases according to the new ordering of attributes on
the compile unit.

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

10 years agoFor AArch64 Neon, simplify scalar dup by lane0 for fp.
Jiangning Liu [Mon, 30 Dec 2013 02:44:35 +0000 (02:44 +0000)]
For AArch64 Neon, simplify scalar dup by lane0 for fp.

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

10 years ago[AArch64]Add code to spill/fill Q register tuples such as QPair/QTriple/QQuad.
Hao Liu [Mon, 30 Dec 2013 02:38:12 +0000 (02:38 +0000)]
[AArch64]Add code to spill/fill Q register tuples such as QPair/QTriple/QQuad.

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

10 years ago[AArch64]Can't select shift left 0 of type v1i64
Hao Liu [Mon, 30 Dec 2013 02:12:46 +0000 (02:12 +0000)]
[AArch64]Can't select shift left 0 of type v1i64

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

10 years agoFix a bug in DAGcombiner about zero-extend after setcc.
Kevin Qin [Mon, 30 Dec 2013 02:05:13 +0000 (02:05 +0000)]
Fix a bug in DAGcombiner about zero-extend after setcc.

For AArch64 backend, if DAGCombiner see "sext(setcc)", it will
combine them together to a single setcc with extended value type.
Then if it see "zext(setcc)", it assumes setcc is Vxi1, and try to
create "(and (vsetcc), (1, 1, ...)". While setcc isn't Vxi1,
DAGcombiner will create wrong node and get wrong code emitted.

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

10 years ago[AArch64]Fix the problem that can't select mul of v1i64/v2i64 types.
Hao Liu [Mon, 30 Dec 2013 01:38:41 +0000 (01:38 +0000)]
[AArch64]Fix the problem that can't select mul of v1i64/v2i64 types.
E.g. Can't select such IR:
     %tmp = mul <2 x i64> %a, %b

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

10 years agoUn-XFAILify some tests which are now passing.
Bill Wendling [Sun, 29 Dec 2013 23:09:14 +0000 (23:09 +0000)]
Un-XFAILify some tests which are now passing.

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

10 years agoSet LLVM_EXPORTED_SYMBOL_FILE in CMakeLists whose corresponding Makefiles do so.
Nico Weber [Sun, 29 Dec 2013 23:06:49 +0000 (23:06 +0000)]
Set LLVM_EXPORTED_SYMBOL_FILE in CMakeLists whose corresponding Makefiles do so.

(unittests/ExecutionEngine/JIT/CMakeLists.txt is still missing for now, since
it handles export files in a strange way: It generates a .exports file from a
.def file instead of the other way round.)

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

10 years ago[cmake] In add_llvm_loadable_module, don't clobber existing LINK_FLAGS on OS X.
Nico Weber [Sun, 29 Dec 2013 23:04:48 +0000 (23:04 +0000)]
[cmake] In add_llvm_loadable_module, don't clobber existing LINK_FLAGS on OS X.

Also add leading spaces to the LINK_FLAGS setters, since that's what the cmake
folks recommend: http://www.cmake.org/pipermail/cmake/2012-October/052399.html

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

10 years agoARM IAS: fix after r198172
Saleem Abdulrasool [Sun, 29 Dec 2013 18:53:16 +0000 (18:53 +0000)]
ARM IAS: fix after r198172

The DPR and SPR register lists are also register lists.  Furthermore, the
registers need not be checked individually since the register type can be
checked via the list kind.  Use that to simplify the logic and fix the incorrect
assertion.

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

10 years agoARM: provide VFP aliases for pre-V6 mnemonics
Saleem Abdulrasool [Sun, 29 Dec 2013 17:58:35 +0000 (17:58 +0000)]
ARM: provide VFP aliases for pre-V6 mnemonics

In order to provide compatibility with the GNU assembler, provide aliases for
pre-UAL mnemonics for floating point operations.

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

10 years agoARM: fix a few typos in comments
Saleem Abdulrasool [Sun, 29 Dec 2013 17:58:31 +0000 (17:58 +0000)]
ARM: fix a few typos in comments

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

10 years agoARM: fix typo in VFP instruction definition
Saleem Abdulrasool [Sun, 29 Dec 2013 17:58:27 +0000 (17:58 +0000)]
ARM: fix typo in VFP instruction definition

The vstm family of VFP instructions belong to the VFP store itinerary class, not
the VFP load itinerary class.

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

10 years agoFix mis-merging in AddLLVM.cmake, take #2. LINK.EXE's options had been broken. Sorry...
NAKAMURA Takumi [Sun, 29 Dec 2013 16:50:15 +0000 (16:50 +0000)]
Fix mis-merging in AddLLVM.cmake, take #2. LINK.EXE's options had been broken. Sorry again.

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

10 years agoFix mis-merging in AddLLVM.cmake. Sorry.
NAKAMURA Takumi [Sun, 29 Dec 2013 16:19:13 +0000 (16:19 +0000)]
Fix mis-merging in AddLLVM.cmake. Sorry.

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

10 years ago[CMake] Fix add_llvm_loadble_module.
NAKAMURA Takumi [Sun, 29 Dec 2013 16:15:31 +0000 (16:15 +0000)]
[CMake] Fix add_llvm_loadble_module.

Thanks to Edward-san, to let me know.

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

10 years ago[CMake] add_llvm_symbol_exports: Use unique name for each target.
NAKAMURA Takumi [Sun, 29 Dec 2013 16:15:26 +0000 (16:15 +0000)]
[CMake] add_llvm_symbol_exports: Use unique name for each target.

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

10 years ago[CMake] add_llvm_symbol_exports: Use ${native_export_file} instead of equivalent...
NAKAMURA Takumi [Sun, 29 Dec 2013 16:15:18 +0000 (16:15 +0000)]
[CMake] add_llvm_symbol_exports: Use ${native_export_file} instead of equivalent constant "symbol.*', since it is defined.

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

10 years agoFix indentation alignment of a declaration in MipsMCCodeEmitter.cpp
Mark Seaborn [Sun, 29 Dec 2013 10:47:04 +0000 (10:47 +0000)]
Fix indentation alignment of a declaration in MipsMCCodeEmitter.cpp

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

10 years agoStore the global variable that's created so that it's reclaimed afterwards.
Bill Wendling [Sun, 29 Dec 2013 08:00:04 +0000 (08:00 +0000)]
Store the global variable that's created so that it's reclaimed afterwards.

This plugs a memory leak in ARM's FastISel by storing the GV in Module so that
it's reclaimed.
PR17978

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

10 years agoYet another attempt at getting cmake-clang-i686-mingw32 green.
Nico Weber [Sun, 29 Dec 2013 07:43:09 +0000 (07:43 +0000)]
Yet another attempt at getting cmake-clang-i686-mingw32 green.

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

10 years agoMake LLVM_MSC_PREREQ() compatible with all MSVC versions
Alp Toker [Sun, 29 Dec 2013 07:39:53 +0000 (07:39 +0000)]
Make LLVM_MSC_PREREQ() compatible with all MSVC versions

The defined() preprocessor expansion wasn't working out on the lld builder.

Also update the documentation to cover another Visual Studio release versioning
convention.

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

10 years ago[SparcV9] Use separate instruction patterns for 64 bit arithmetic instructions instea...
Venkatraman Govindaraju [Sun, 29 Dec 2013 07:15:09 +0000 (07:15 +0000)]
[SparcV9] Use separate instruction patterns for 64 bit arithmetic instructions instead of reusing 32 bit instruction patterns.
 This is done to avoid spilling the result of the 64-bit instructions to a 4-byte slot.

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

10 years agoWindows build fixes, hopefully last part.
Nico Weber [Sun, 29 Dec 2013 06:56:28 +0000 (06:56 +0000)]
Windows build fixes, hopefully last part.

r198153 fixed the msvs bot problem, but broke a msysgit bot. This change
hopefully makes both variants happy.

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

10 years agoPython compatibility fix for r198150
Alp Toker [Sun, 29 Dec 2013 06:51:10 +0000 (06:51 +0000)]
Python compatibility fix for r198150

Remove the stat call error reporting for now.

It wasn't essential so silent fallback should be fine here.

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

10 years agoFix parens fail in r198142
Alp Toker [Sun, 29 Dec 2013 06:33:19 +0000 (06:33 +0000)]
Fix parens fail in r198142

Probable cause of the lld build failure on VS 2012.

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

10 years agoAnother windows build fix attempt.
Nico Weber [Sun, 29 Dec 2013 06:12:40 +0000 (06:12 +0000)]
Another windows build fix attempt.

Inspired by http://public.kitware.com/pipermail/cmake-developers/2012-March/003768.html

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

10 years agoProspective Python 3 fix for r198150
Alp Toker [Sun, 29 Dec 2013 05:51:07 +0000 (05:51 +0000)]
Prospective Python 3 fix for r198150

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

10 years agoMore windows build fix attempts.
Nico Weber [Sun, 29 Dec 2013 05:39:01 +0000 (05:39 +0000)]
More windows build fix attempts.

The windows ninja build is now green, but msvs is still unhappy. Maybe that's
because the .def file was passed when building LTO_static, so only pass
symbol lists for shared libraries.

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

10 years agolit: Incremental test scheduling
Alp Toker [Sun, 29 Dec 2013 05:09:05 +0000 (05:09 +0000)]
lit: Incremental test scheduling

Add option -i to prioritize test runs by source file modification time and
previous failure state.

This optimal scheduling reduces typical test-and-fix iteration times to a
matter of seconds by rapidly answering the questions:

  1) Did my recent change fix tests that were previously failing?
  2) Do the tests I just wrote / modified still work?

The current implementation requires write permissions to the source tree
because it uses mtimes to track failures.

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

10 years ago[SparcV9] For codegen generated library calls that return float, set inreg flag manua...
Venkatraman Govindaraju [Sun, 29 Dec 2013 04:27:21 +0000 (04:27 +0000)]
[SparcV9] For codegen generated library calls that return float, set inreg flag manually in LowerCall().
 This makes the sparc backend to generate Sparc64 ABI compliant code.

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

10 years agoThe same we do every commit, Pinky: Try to fix the windows build (after r198136).
Nico Weber [Sun, 29 Dec 2013 04:05:23 +0000 (04:05 +0000)]
The same we do every commit, Pinky: Try to fix the windows build (after r198136).

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

10 years agoMake more of the x86 lowering helper functions static.
Craig Topper [Sun, 29 Dec 2013 01:48:38 +0000 (01:48 +0000)]
Make more of the x86 lowering helper functions static.

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

10 years ago[SparcV9]: Implement lowering of long double (fp128) arguments in Sparc64 ABI.
Venkatraman Govindaraju [Sun, 29 Dec 2013 01:20:36 +0000 (01:20 +0000)]
[SparcV9]: Implement lowering of long double (fp128) arguments in Sparc64 ABI.
Also, pass fp128 arguments to varargs through integer registers if necessary.

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

10 years agoSwitch from EVT to MVT in more of the x86 instruction lowering code.
Craig Topper [Sun, 29 Dec 2013 01:10:06 +0000 (01:10 +0000)]
Switch from EVT to MVT in more of the x86 instruction lowering code.

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

10 years agoAnother windows build fix attempt after r198136.
Nico Weber [Sun, 29 Dec 2013 00:50:09 +0000 (00:50 +0000)]
Another windows build fix attempt after r198136.

The current quoting is stripped by cmake, try quoting more.

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

10 years agoEnable deleted functions and explicit conversions in MSVC 2013
Alp Toker [Sun, 29 Dec 2013 00:49:14 +0000 (00:49 +0000)]
Enable deleted functions and explicit conversions in MSVC 2013

Also prospectively enable static_assert as the documentation suggests it's been
available since MSVC 2010. Let's see if the build servers agree.

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

10 years agoDefine LLVM_MSC_PREREQ() macro to simplify _MSC_VER checks
Alp Toker [Sun, 29 Dec 2013 00:49:05 +0000 (00:49 +0000)]
Define LLVM_MSC_PREREQ() macro to simplify _MSC_VER checks

Includes documentation mapping MSC version numbers to the more familiar Visual
Studio releases.

Cleanup only to simplify upcoming C++11 / MSVC 2013 changes.

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

10 years agoTry to fix windows build more after r198136.
Nico Weber [Sun, 29 Dec 2013 00:27:49 +0000 (00:27 +0000)]
Try to fix windows build more after r198136.

The command that cmd.exe is complaining about is:
cmd.exe /c cd /D C:\bb-win7\cmake-clang-i686-mingw32\build\tools\lto && cmake -E echo EXPORTS > symbol.def && type C:/bb-win7/cmake-clang-i686-mingw32/llvm-project/llvm/tools/lto/lto.exports >> symbol.def

Maybe quoting the filename helps.

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

10 years agoUse `${CMAKE_COMMAND}` instead of `cmake`.
Nico Weber [Sun, 29 Dec 2013 00:11:20 +0000 (00:11 +0000)]
Use `${CMAKE_COMMAND}` instead of `cmake`.

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

10 years agoTry to fix windows build after r198136.
Nico Weber [Sat, 28 Dec 2013 23:50:01 +0000 (23:50 +0000)]
Try to fix windows build after r198136.

`type` can't read from stdin.

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

10 years agoTry to fix linux build after r198136.
Nico Weber [Sat, 28 Dec 2013 23:39:49 +0000 (23:39 +0000)]
Try to fix linux build after r198136.

$ needs to be written $$ in makefiles, but not in cmakefiles.

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

10 years agoEXPORTED_SYMBOL_FILE support for cmake
Nico Weber [Sat, 28 Dec 2013 23:31:44 +0000 (23:31 +0000)]
EXPORTED_SYMBOL_FILE support for cmake

The cmake build didn't support EXPORTED_SYMBOL_FILE. Instead, it had a
Windows-only implementation in tools/lto/CMakeLists.txt, a linux-only
implementation in tools/gold/CMakeLists.txt, and a darwin-only implementation
in tools/clang/tools/libclang/CMakeLists.txt.

This attempts to consolidate these one-offs into a single place. Clients can now
just set LLVM_EXPORTED_SYMBOL_FILE and things (hopefully) Just Work, like in
the make build.

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

10 years agoRemove windows newlines.
Nico Weber [Sat, 28 Dec 2013 23:26:51 +0000 (23:26 +0000)]
Remove windows newlines.

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

10 years agoCodeGen: silence a C++11 feature warning
Saleem Abdulrasool [Sat, 28 Dec 2013 22:47:55 +0000 (22:47 +0000)]
CodeGen: silence a C++11 feature warning

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

10 years agoARM IAS: handle errors more appropriately
Saleem Abdulrasool [Sat, 28 Dec 2013 22:47:53 +0000 (22:47 +0000)]
ARM IAS: handle errors more appropriately

Directive parsers must return false if the target assembler is interested in
handling the directive.  The Error member function returns true always.  Using
the 'return Error()' pattern would incorrectly indicate to the general parser
that the target was not interested in the directive, when in reality it simply
encountered a badly formed directive or some other error.  This corrects the
behaviour to ensure that the parser behaves appropriately.

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

10 years agoUninitialized variable (in never taken path) after factoring.
Andrew Trick [Sat, 28 Dec 2013 22:25:57 +0000 (22:25 +0000)]
Uninitialized variable (in never taken path) after factoring.

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

10 years agoNew machine model for cortex-a9. Schedule for resources and latency.
Andrew Trick [Sat, 28 Dec 2013 21:57:05 +0000 (21:57 +0000)]
New machine model for cortex-a9. Schedule for resources and latency.

Schedule more conservatively to account for stalls on floating point
resources and latency. Use the AGU resource to model latency stalls
since it's shared between FP and LD/ST instructions. This might not be
completely accurate but should work well in practice.

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

10 years agoAdded debugging options: -misched-only-func/block
Andrew Trick [Sat, 28 Dec 2013 21:57:02 +0000 (21:57 +0000)]
Added debugging options: -misched-only-func/block

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

10 years agoThe Cortex-A9 machine model is incomplete. Mark it as such.
Andrew Trick [Sat, 28 Dec 2013 21:57:00 +0000 (21:57 +0000)]
The Cortex-A9 machine model is incomplete. Mark it as such.

Many vector operations never had itineraries. Since the new machine
model was a mapping from existing itinerary classes, we don't have a
model for these. We still want to migrate A9 even though no one has
invested in a complete model, so mark it incomplete to avoid the
scheduler asserting.

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

10 years agoAdd a PostMachineScheduler pass with generic implementation.
Andrew Trick [Sat, 28 Dec 2013 21:56:57 +0000 (21:56 +0000)]
Add a PostMachineScheduler pass with generic implementation.

PostGenericScheduler uses either the new machine model or the hazard
checker for top-down scheduling. Most of the infrastructure for PreRA
machine scheduling is reused.

With a some tuning, this should allow MachineScheduler to be default
for all ARM targets, including cortex-A9, using the new machine
model. Likewise, with additional tuning, it should be able to replace
PostRAScheduler for all targets.

The PostMachineScheduler pass does not currently run the
AntiDepBreaker. There is less need for it on targets that are already
running preRA MachineScheduler. I want to prove it's necessary before
committing to the maintenance burden.

The PostMachineScheduler also currently removes kill flags and adds
them all back later. This is a bit ridiculous. I'd prefer passes to
directly use a liveness utility than rely on flags.

A test case that enables this scheduler will be included in a
subsequent checkin that updates the A9 model.

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