oota-llvm.git
11 years agoThis fixes the Thumb2 CPS assembly syntax.
Mihai Popa [Fri, 9 Aug 2013 13:52:32 +0000 (13:52 +0000)]
This fixes the Thumb2 CPS assembly syntax.
In Thumb1, only one variant is supported: CPS{effect} {flags}

Thumb2 supports three:
CPS{effect}.W {flags}
CPS{effect} {flags} {mode}
CPS {mode}

Canonically, .W should be used only when ambiguity is present between encodings of different width.
The wide suffix is still accepted for the latter two forms via aliases.

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

11 years agoFix assembling of Thumb2 branch instructions.
Mihai Popa [Fri, 9 Aug 2013 10:38:32 +0000 (10:38 +0000)]
Fix assembling of Thumb2 branch instructions.

The long encoding for Thumb2 unconditional branches is broken.
Additionally, there is no range checking for target operands; as such
for instructions originating in assembly code, only short Thumb encodings
are generated, regardless of the bitsize needed for the offset.

Adding range checking is non trivial due to the representation of Thumb
branch instructions. There is no true difference between conditional and
unconditional branches in terms of operands and syntax - even unconditional
branches have a predicate which is expected to match that of the IT block
they are in. Yet, the encodings and the permitted size of the offset differ.

Due to this, for any mnemonic there are really 4 encodings to choose for.

The problem cannot be handled in the parser alone or by manipulating td files.
Because the parser builds first a set of match candidates and then checks them
one by one, whatever tablegen-only solution might be found will ultimately be
dependent of the parser's evaluation order. What's worse is that due to the fact
that all branches have the same syntax and the same kinds of operands, that
order is governed by the lexicographical ordering of the names of operand
classes...

To circumvent all this, any necessary disambiguation is added to the instruction
validation pass.

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

11 years agoRemove byte order mark from source file.
Benjamin Kramer [Fri, 9 Aug 2013 10:31:14 +0000 (10:31 +0000)]
Remove byte order mark from source file.

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

11 years agoAdd back missing PPC relocation types.
Ulrich Weigand [Fri, 9 Aug 2013 09:42:14 +0000 (09:42 +0000)]
Add back missing PPC relocation types.

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

11 years ago[SystemZ] Update README
Richard Sandiford [Fri, 9 Aug 2013 09:25:57 +0000 (09:25 +0000)]
[SystemZ] Update README

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

11 years agoTry to unbreak Windows build after r188022
Alexey Samsonov [Fri, 9 Aug 2013 07:34:06 +0000 (07:34 +0000)]
Try to unbreak Windows build after r188022

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

11 years agoAdd missing 'v' prefix in front of palignr on one of checks.
Craig Topper [Fri, 9 Aug 2013 05:41:12 +0000 (05:41 +0000)]
Add missing 'v' prefix in front of palignr on one of checks.

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

11 years agoChange asserts at the top of getVectorShuffle to check that LHS and RHS have the...
Craig Topper [Fri, 9 Aug 2013 04:37:24 +0000 (04:37 +0000)]
Change asserts at the top of getVectorShuffle to check that LHS and RHS have the same type as the result.

Previously the asserts were only checking that RHS and LHS were the same type and had the same element type as the result. All downstream code for ISD::VECTOR_SHUFFLE requires the types to be the same.

Also removed one unnecessary check of matched element counts that was present in the code.

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

11 years agoSet ISD::FROUND to Expand by default for all types
Hal Finkel [Fri, 9 Aug 2013 04:13:44 +0000 (04:13 +0000)]
Set ISD::FROUND to Expand by default for all types

For most libm ISD nodes, TargetLoweringBase::initActions sets the default
scalar-type action to Expand, and leaves the vector-type action default as
Legal. This is not appropriate for the new ISD::FROUND node (which no backend
but PowerPC handles explicitly).

Fixes PR16842.

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

11 years ago[CodeGen] prevent abnormal on invalid attributes
Saleem Abdulrasool [Fri, 9 Aug 2013 01:52:03 +0000 (01:52 +0000)]
[CodeGen] prevent abnormal on invalid attributes

Currently, when an invalid attribute is encountered on processing a .s file,
clang will abort due to llvm_unreachable.  Invalid user input should not cause
an abnormal termination of the compiler.  Change the interface to return a
boolean to indicate the failure as a first step towards improving hanlding of
malformed user input to clang.

Signed-off-by: Saleem Abdulrasool <compnerd@compnerd.org>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188047 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoOptimistically ignore scattered relocations in MachO in RuntimeDyld. This
Lang Hames [Fri, 9 Aug 2013 00:57:01 +0000 (00:57 +0000)]
Optimistically ignore scattered relocations in MachO in RuntimeDyld. This
un-breaks simple use cases while I work on more general support.

<rdar://problem/14487667>

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

11 years ago[lit] Rename lit.{TestFormats,Util} to their aliased names {formats,util}.
Daniel Dunbar [Fri, 9 Aug 2013 00:37:15 +0000 (00:37 +0000)]
[lit] Rename lit.{TestFormats,Util} to their aliased names {formats,util}.

 - With compatibility hack in lit.__init__, so this hopefully shouldn't break
   anything.

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

11 years ago[lit] Inject the lit specific config object as 'lit_config' when loading config files.
Daniel Dunbar [Fri, 9 Aug 2013 00:37:05 +0000 (00:37 +0000)]
[lit] Inject the lit specific config object as 'lit_config' when loading config files.

 - Injecting it as 'lit' is gross, since that name should be used to refer to
   the actual package. For now both are available so it is possibly to cleanup
   test config files incrementally.

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

11 years ago[lit] Split TestingConfig.frompath() into separate ctor and load methods.
Daniel Dunbar [Fri, 9 Aug 2013 00:36:58 +0000 (00:36 +0000)]
[lit] Split TestingConfig.frompath() into separate ctor and load methods.

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

11 years ago[lit] Eliminate mustExist parameter from TestingConfig.frompath().
Daniel Dunbar [Fri, 9 Aug 2013 00:09:02 +0000 (00:09 +0000)]
[lit] Eliminate mustExist parameter from TestingConfig.frompath().

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

11 years ago[lit] Only create config copies when a local config file is present.
Daniel Dunbar [Fri, 9 Aug 2013 00:08:56 +0000 (00:08 +0000)]
[lit] Only create config copies when a local config file is present.

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

11 years ago[lit] Eliminate parent argument from TestingConfig.frompath(), which is effectively...
Daniel Dunbar [Fri, 9 Aug 2013 00:08:46 +0000 (00:08 +0000)]
[lit] Eliminate parent argument from TestingConfig.frompath(), which is effectively unused.

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

11 years agoAdd missing PPC64 relocation types.
Michael J. Spencer [Thu, 8 Aug 2013 23:58:18 +0000 (23:58 +0000)]
Add missing PPC64 relocation types.

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

11 years agoUpdate the CMake build files.
Eric Christopher [Thu, 8 Aug 2013 23:51:31 +0000 (23:51 +0000)]
Update the CMake build files.

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

11 years agoRevert r185882. This is causing problems with the gold linker and might be better...
Bill Wendling [Thu, 8 Aug 2013 23:51:04 +0000 (23:51 +0000)]
Revert r185882. This is causing problems with the gold linker and might be better handled by the linker.

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

11 years agoMove hash computation code into a separate class and file.
Eric Christopher [Thu, 8 Aug 2013 23:45:55 +0000 (23:45 +0000)]
Move hash computation code into a separate class and file.

No functional change intended.

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

11 years agoMips ELF: MicroMips direct object Little endian support.
Jack Carter [Thu, 8 Aug 2013 23:30:40 +0000 (23:30 +0000)]
Mips ELF: MicroMips direct object Little endian support.

Test included.

Patch by Zoran Jovanovich

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

11 years agollvm isn't C++11 yet :(
Michael J. Spencer [Thu, 8 Aug 2013 22:50:40 +0000 (22:50 +0000)]
llvm isn't C++11 yet :(

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

11 years ago[Object] Split the ELF interface into 3 parts.
Michael J. Spencer [Thu, 8 Aug 2013 22:27:13 +0000 (22:27 +0000)]
[Object] Split the ELF interface into 3 parts.

* ELFTypes.h contains template magic for defining types based on endianess, size, and alignment.
* ELFFile.h defines the ELFFile class which provides low level ELF specific access.
* ELFObjectFile.h contains ELFObjectFile which uses ELFFile to implement the ObjectFile interface.

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

11 years ago[mips] Rename accumulator register classes and FP register operands.
Akira Hatanaka [Thu, 8 Aug 2013 21:54:26 +0000 (21:54 +0000)]
[mips] Rename accumulator register classes and FP register operands.

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

11 years ago[mips] Mark pseudo instructions as code-gen only.
Akira Hatanaka [Thu, 8 Aug 2013 21:44:39 +0000 (21:44 +0000)]
[mips] Mark pseudo instructions as code-gen only.

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

11 years ago[mips] Delete register class HWRegs64.
Akira Hatanaka [Thu, 8 Aug 2013 21:37:32 +0000 (21:37 +0000)]
[mips] Delete register class HWRegs64.

No functionality change.

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

11 years agocast fix to appease buildbot
David Fang [Thu, 8 Aug 2013 21:29:30 +0000 (21:29 +0000)]
cast fix to appease buildbot

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

11 years agoRevert "Reapply r185872 now that the address sanitizer has been changed to support...
Arnold Schwaighofer [Thu, 8 Aug 2013 21:04:16 +0000 (21:04 +0000)]
Revert "Reapply r185872 now that the address sanitizer has been changed to support this."

This reverts commit r187939. It broke an O0 build of a spec benchmark.

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

11 years ago[tests] Remove dead VALGRIND and CLEANED_TESTSUITE makefile variables.
Daniel Dunbar [Thu, 8 Aug 2013 20:59:27 +0000 (20:59 +0000)]
[tests] Remove dead VALGRIND and CLEANED_TESTSUITE makefile variables.

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

11 years ago[lit] Change --show-{tests,suites} to exit after printing.
Daniel Dunbar [Thu, 8 Aug 2013 20:59:25 +0000 (20:59 +0000)]
[lit] Change --show-{tests,suites} to exit after printing.

 - This is a more sensible behavior than printing and also running tests.

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

11 years ago[lit] Remove --repeat option, which wasn't that useful.
Daniel Dunbar [Thu, 8 Aug 2013 20:59:20 +0000 (20:59 +0000)]
[lit] Remove --repeat option, which wasn't that useful.

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

11 years ago[lit] Eliminate some nested imports.
Daniel Dunbar [Thu, 8 Aug 2013 20:59:16 +0000 (20:59 +0000)]
[lit] Eliminate some nested imports.

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

11 years ago[lit] Remove on_clone member, which is no longer used.
Daniel Dunbar [Thu, 8 Aug 2013 20:59:13 +0000 (20:59 +0000)]
[lit] Remove on_clone member, which is no longer used.

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

11 years agoinitial draft of PPCMachObjectWriter.cpp
David Fang [Thu, 8 Aug 2013 20:14:40 +0000 (20:14 +0000)]
initial draft of PPCMachObjectWriter.cpp
this records relocation entries in the mach-o object file
for PIC code generation.
tested on powerpc-darwin8, validated against darwin otool -rvV

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

11 years agoFix off-by-one error in Regex::isValid
Alexey Samsonov [Thu, 8 Aug 2013 17:32:45 +0000 (17:32 +0000)]
Fix off-by-one error in Regex::isValid

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

11 years agoR600/SI: Implement fp32<->fp64 conversions
Niels Ole Salscheider [Thu, 8 Aug 2013 16:06:15 +0000 (16:06 +0000)]
R600/SI: Implement fp32<->fp64 conversions

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

11 years agoR600/SI: Implement sint<->fp64 conversions
Niels Ole Salscheider [Thu, 8 Aug 2013 16:06:08 +0000 (16:06 +0000)]
R600/SI: Implement sint<->fp64 conversions

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

11 years agoUse pop_back() instead of pop_back_val() when the returned value is not used.
Jakub Staszak [Thu, 8 Aug 2013 15:48:46 +0000 (15:48 +0000)]
Use pop_back() instead of pop_back_val() when the returned value is not used.

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

11 years agoRemove the now redundant FeatureFP16 from the Cortex-A15 feature list. It was made...
Silviu Baranga [Thu, 8 Aug 2013 15:47:33 +0000 (15:47 +0000)]
Remove the now redundant FeatureFP16 from the Cortex-A15 feature list. It was made redundant when FeatureVFP4 was added which implies FP16.

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

11 years agoFix the comment.
Jakub Staszak [Thu, 8 Aug 2013 15:19:25 +0000 (15:19 +0000)]
Fix the comment.

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

11 years agoUse EXPECT_TRUE/EXPECT_FALSE to avoid bogus warnings from the guts of gtest.
Benjamin Kramer [Thu, 8 Aug 2013 11:17:39 +0000 (11:17 +0000)]
Use EXPECT_TRUE/EXPECT_FALSE to avoid bogus warnings from the guts of gtest.

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

11 years agotest commit.
Andrea Di Biagio [Thu, 8 Aug 2013 10:46:36 +0000 (10:46 +0000)]
test commit.

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

11 years agoThe name "tCDP" isn't used anywhere else in the source code, so renaming it for consi...
Mihai Popa [Thu, 8 Aug 2013 10:20:41 +0000 (10:20 +0000)]
The name "tCDP" isn't used anywhere else in the source code, so renaming it for consistency doesn't cause any problems.
This is the only Thumb2 instruction defined with "t" prefix; all other Thumb2 instructions have "t2" prefix (e.g. "t2CDP2" which is defined immediately afterwards).

Patch by Artyom Skrobov.

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

11 years agoDISubprogram metadata have an MDNode representing which base type
Eric Christopher [Thu, 8 Aug 2013 08:35:37 +0000 (08:35 +0000)]
DISubprogram metadata have an MDNode representing which base type
contains the vtable pointer for the class as the operand at index
12. Replace the i32 0 with a null MDNode.

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

11 years agoDisable inlining between sanitized and non-sanitized functions.
Evgeniy Stepanov [Thu, 8 Aug 2013 08:22:39 +0000 (08:22 +0000)]
Disable inlining between sanitized and non-sanitized functions.

Inlining between functions with different values of sanitize_* attributes
leads to over- or under-sanitizing, which is always bad.

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

11 years agoFor DW_TAG_template_type_parameter the actual passed in type could
Eric Christopher [Thu, 8 Aug 2013 08:09:43 +0000 (08:09 +0000)]
For DW_TAG_template_type_parameter the actual passed in type could
be void and therefore not have a type entry. Only add the type if
it is non-void and provide a testcase.

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

11 years agoRemove AllUndef check from one of the loops in getVectorShuffle. It was already handl...
Craig Topper [Thu, 8 Aug 2013 08:03:12 +0000 (08:03 +0000)]
Remove AllUndef check from one of the loops in getVectorShuffle. It was already handled by the 'AllLHS && AllRHS' check after the previous loop.

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

11 years agoThe conversion to bool is fine here, no need to check isType.
Eric Christopher [Thu, 8 Aug 2013 07:40:42 +0000 (07:40 +0000)]
The conversion to bool is fine here, no need to check isType.

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

11 years agoMake sure that if we're going to attempt to add a type to a DIE that
Eric Christopher [Thu, 8 Aug 2013 07:40:37 +0000 (07:40 +0000)]
Make sure that if we're going to attempt to add a type to a DIE that
the type exists.

Fix up cases where we weren't checking for optional types and add
an assert to addType to make sure we catch this in the future.

Fix up a testcase that was using the tag for DW_TAG_array_type
when it meant DW_TAG_enumeration_type.

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

11 years agoChange variable name and reflow formatting.
Eric Christopher [Thu, 8 Aug 2013 07:40:31 +0000 (07:40 +0000)]
Change variable name and reflow formatting.

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

11 years agoOptimize mask generation for one of the DAG combiner shufflevector cases.
Craig Topper [Thu, 8 Aug 2013 07:38:55 +0000 (07:38 +0000)]
Optimize mask generation for one of the DAG combiner shufflevector cases.

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

11 years agoPPC: Map frin to round() not nearbyint() and rint()
Hal Finkel [Thu, 8 Aug 2013 04:31:34 +0000 (04:31 +0000)]
PPC: Map frin to round() not nearbyint() and rint()

Making use of the recently-added ISD::FROUND, which allows for custom lowering
of round(), the PPC backend will now map frin to round(). Previously, we had
been using frin to lower nearbyint() (and rint() via some custom lowering to
handle the extra fenv flags requirements), but only in fast-math mode because
frin does not tie-to-even. Several users had complained about this behavior,
and this new mapping of frin to round is certainly more appropriate (and does
not require fast-math mode).

In effect, this reverts r178362 (and part of r178337, replacing the nearbyint
mapping with the round mapping).

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

11 years agoRevert "coff also doesn't have a ReadOnlySection yet, (!)"
David Majnemer [Thu, 8 Aug 2013 01:50:52 +0000 (01:50 +0000)]
Revert "coff also doesn't have a ReadOnlySection yet, (!)"

This reverts commit r77814.

We were sticking global constants in the .data section instead of in the
.rdata section when emitting for COFF.

This fixes PR16831.

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

11 years agoReflow for loop.
Eric Christopher [Thu, 8 Aug 2013 01:41:05 +0000 (01:41 +0000)]
Reflow for loop.

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

11 years agoBe more rigorous about the sizes of forms and attributes.
Eric Christopher [Thu, 8 Aug 2013 01:41:00 +0000 (01:41 +0000)]
Be more rigorous about the sizes of forms and attributes.

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

11 years agoAdd three missing CMake variables that need to make it to the
Chandler Carruth [Thu, 8 Aug 2013 01:15:37 +0000 (01:15 +0000)]
Add three missing CMake variables that need to make it to the
LLVMConfig.cmake file that is (I think) used in the stand-alone Clang
build, and causing link errors there w.r.t. curses.

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

11 years agoChanged isPrint for U+00AD SOFT HYPHEN to return true.
Alexander Kornienko [Thu, 8 Aug 2013 01:10:50 +0000 (01:10 +0000)]
Changed isPrint for U+00AD SOFT HYPHEN to return true.

Summary:
This is consistent with MacOSX implementation, and most terminals
actually display this character (checked on gnome-terminal, lxterminal, lxterm,
Terminal.app, iterm2). Actually, this is in line with the ISO Latin 1 standard
(ISO 8859-1), which defines it differently from the Unicode Standard. More
information here: http://www.cs.tut.fi/~jkorpela/shy.html

Reviewers: gribozavr, jordan_rose

CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1310

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

11 years agoForward resetColor() et al to the underlying stream.
Ted Kremenek [Thu, 8 Aug 2013 00:43:30 +0000 (00:43 +0000)]
Forward resetColor() et al to the underlying stream.

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

11 years agoRevert "[objc-arc] Track if we encountered an additive overflow while computing ...
Michael Gottesman [Thu, 8 Aug 2013 00:41:18 +0000 (00:41 +0000)]
Revert "[objc-arc] Track if we encountered an additive overflow while computing {TopDown,BottomUp}PathCounts and do nothing if it occured."

This reverts commit r187941.

The commit was passing on my os x box, but it is failing on some non-osx
platforms. I do not have time to look into it now, so I am reverting and will
recommit after I figure this out.

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

11 years agoFix ARM build.
Peter Collingbourne [Thu, 8 Aug 2013 00:15:27 +0000 (00:15 +0000)]
Fix ARM build.

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

11 years ago[objc-arc] Track if we encountered an additive overflow while computing {TopDown...
Michael Gottesman [Wed, 7 Aug 2013 23:56:41 +0000 (23:56 +0000)]
[objc-arc] Track if we encountered an additive overflow while computing {TopDown,BottomUp}PathCounts and do nothing if it occured.

rdar://14590914

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

11 years ago[objc-arc] Change 4 iterator methods which return const_iterators to be const methods.
Michael Gottesman [Wed, 7 Aug 2013 23:56:34 +0000 (23:56 +0000)]
[objc-arc] Change 4 iterator methods which return const_iterators to be const methods.

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

11 years agoReapply r185872 now that the address sanitizer has been changed to support this.
Bill Wendling [Wed, 7 Aug 2013 23:42:09 +0000 (23:42 +0000)]
Reapply r185872 now that the address sanitizer has been changed to support this.

Original commit message:

Stop emitting weak symbols into the "coal" sections.

The Mach-O linker has been able to support the weak-def bit on any symbol for
quite a while now. The compiler however continued to place these symbols into a
"coal" section, which required the linker to map them back to the base section
name.

Replace the sections like this:

  __TEXT/__textcoal_nt   instead use  __TEXT/__text
  __TEXT/__const_coal    instead use  __TEXT/__const
  __DATA/__datacoal_nt   instead use  __DATA/__data

<rdar://problem/14265330>

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

11 years agoReally unbreak Mac build.
Peter Collingbourne [Wed, 7 Aug 2013 23:41:13 +0000 (23:41 +0000)]
Really unbreak Mac build.

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

11 years agoUnbreak Mac build.
Peter Collingbourne [Wed, 7 Aug 2013 23:29:46 +0000 (23:29 +0000)]
Unbreak Mac build.

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

11 years ago[lit] Remove unnecessary list copy.
Daniel Dunbar [Wed, 7 Aug 2013 23:10:20 +0000 (23:10 +0000)]
[lit] Remove unnecessary list copy.

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

11 years ago[lit] Always list individual UNRESOLVED tests.
Daniel Dunbar [Wed, 7 Aug 2013 23:10:05 +0000 (23:10 +0000)]
[lit] Always list individual UNRESOLVED tests.

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

11 years ago[lit] Explicitly convert dict items() result to a list.
Daniel Dunbar [Wed, 7 Aug 2013 23:10:01 +0000 (23:10 +0000)]
[lit] Explicitly convert dict items() result to a list.

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

11 years ago[lit] Make string encoding issues explicit.
Daniel Dunbar [Wed, 7 Aug 2013 23:09:55 +0000 (23:09 +0000)]
[lit] Make string encoding issues explicit.

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

11 years ago[tests] Make string encoding issues explicit.
Daniel Dunbar [Wed, 7 Aug 2013 23:09:24 +0000 (23:09 +0000)]
[tests] Make string encoding issues explicit.

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

11 years ago[tests] Avoid deprecated except syntax.
Daniel Dunbar [Wed, 7 Aug 2013 23:09:10 +0000 (23:09 +0000)]
[tests] Avoid deprecated except syntax.

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

11 years agoAdd ISD::FROUND for libm round()
Hal Finkel [Wed, 7 Aug 2013 22:49:12 +0000 (22:49 +0000)]
Add ISD::FROUND for libm round()

All libm floating-point rounding functions, except for round(), had their own
ISD nodes. Recent PowerPC cores have an instruction for round(), and so here I'm
adding ISD::FROUND so that round() can be custom lowered as well.

For the most part, this is straightforward. I've added an intrinsic
and a matching ISD node just like those for nearbyint() and friends. The
SelectionDAG pattern I've named frnd (because ISD::FP_ROUND has already claimed
fround).

This will be used by the PowerPC backend in a follow-up commit.

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

11 years agoDataFlowSanitizer; LLVM changes.
Peter Collingbourne [Wed, 7 Aug 2013 22:47:18 +0000 (22:47 +0000)]
DataFlowSanitizer; LLVM changes.

DataFlowSanitizer is a generalised dynamic data flow analysis.

Unlike other Sanitizer tools, this tool is not designed to detect a
specific class of bugs on its own.  Instead, it provides a generic
dynamic data flow analysis framework to be used by clients to help
detect application-specific issues within their own code.

Differential Revision: http://llvm-reviews.chandlerc.com/D965

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

11 years ago[lit] Report the traceback when config import fails.
Daniel Dunbar [Wed, 7 Aug 2013 21:43:34 +0000 (21:43 +0000)]
[lit] Report the traceback when config import fails.

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

11 years ago[lit] Avoid comparisons with None.
Daniel Dunbar [Wed, 7 Aug 2013 21:43:23 +0000 (21:43 +0000)]
[lit] Avoid comparisons with None.

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

11 years ago[lit] Use list comprehensions instead of map().
Daniel Dunbar [Wed, 7 Aug 2013 21:43:17 +0000 (21:43 +0000)]
[lit] Use list comprehensions instead of map().

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

11 years ago[lit] Avoid deprecated dict.has_key() method.
Daniel Dunbar [Wed, 7 Aug 2013 21:43:12 +0000 (21:43 +0000)]
[lit] Avoid deprecated dict.has_key() method.

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

11 years agoUsing the integrated assembler we'd fail to change section to the
Eric Christopher [Wed, 7 Aug 2013 21:13:06 +0000 (21:13 +0000)]
Using the integrated assembler we'd fail to change section to the
.tbss section for zerofill thread locals. Make sure we do this
before emitting the zerofills.

Fixes PR15972.

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

11 years agoFix a FIXME, on darwin all virtual sections have a zerofill type.
Eric Christopher [Wed, 7 Aug 2013 21:13:01 +0000 (21:13 +0000)]
Fix a FIXME, on darwin all virtual sections have a zerofill type.

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

11 years agoOn Windows, autolink advapi32 from Path.inc for CryptAcquireContextW
Reid Kleckner [Wed, 7 Aug 2013 20:19:31 +0000 (20:19 +0000)]
On Windows, autolink advapi32 from Path.inc for CryptAcquireContextW

This allows llvm-tblgen to link successfully when compiling with clang.

Both MSBuild and CMake will automatically add advapi32 as part of a set
of other dlls comprising the win32 API to the link line, but CMake
doesn't do that when compiling with clang.  Until someone adds that info
to cmake upstream, this seems like a reasonable work around.

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

11 years agoAdd the common begin/end naming convention to the coding standard.
Rafael Espindola [Wed, 7 Aug 2013 19:34:37 +0000 (19:34 +0000)]
Add the common begin/end naming convention to the coding standard.

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

11 years agoMove assert above first use of variable that we'd be asserting on.
Eric Christopher [Wed, 7 Aug 2013 18:51:09 +0000 (18:51 +0000)]
Move assert above first use of variable that we'd be asserting on.

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

11 years agolit/LitConfig.py: Fixup for msys bash.
NAKAMURA Takumi [Wed, 7 Aug 2013 17:21:23 +0000 (17:21 +0000)]
lit/LitConfig.py: Fixup for msys bash.

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

11 years agoConfusing comment typo.
Andrew Trick [Wed, 7 Aug 2013 17:20:32 +0000 (17:20 +0000)]
Confusing comment typo.

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

11 years agoLit: Fixup in r187886.
NAKAMURA Takumi [Wed, 7 Aug 2013 12:53:53 +0000 (12:53 +0000)]
Lit: Fixup in r187886.

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

11 years agoLit: Resurrect --no-execute dropped in r187852.
NAKAMURA Takumi [Wed, 7 Aug 2013 12:44:29 +0000 (12:44 +0000)]
Lit: Resurrect --no-execute dropped in r187852.

For now, builders in bb.pgr.jp are using it.

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

11 years agoAVX-512 set: Added BROADCAST instructions
Elena Demikhovsky [Wed, 7 Aug 2013 12:34:55 +0000 (12:34 +0000)]
AVX-512 set: Added BROADCAST instructions
with lowering logic and a test.

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

11 years ago[SystemZ] Optimize floating-point comparisons with zero
Richard Sandiford [Wed, 7 Aug 2013 11:10:06 +0000 (11:10 +0000)]
[SystemZ] Optimize floating-point comparisons with zero

This follows the same lines as the integer code.  In the end it seemed
easier to have a second 4-bit mask in TSFlags to specify the compare-like
CC values.  That eats one more TSFlags bit than adding a CCHasUnordered
would have done, but it feels more concise.

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

11 years ago[SystemZ] Add floating-point load-and-test instructions
Richard Sandiford [Wed, 7 Aug 2013 11:03:34 +0000 (11:03 +0000)]
[SystemZ] Add floating-point load-and-test instructions

These instructions can also be used as comparisons with zero.

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

11 years agoJumpThreading: Turn a select instruction into branching if it allows to thread one...
Benjamin Kramer [Wed, 7 Aug 2013 10:29:38 +0000 (10:29 +0000)]
JumpThreading: Turn a select instruction into branching if it allows to thread one half of the select.

This is a common pattern coming out of simplifycfg generating gross code.

a:                                       ; preds = %entry
  %sel = select i1 %cmp1, double %add, double 0.000000e+00
  br label %b

b:
  %cond5 = phi double [ %sel, %a ], [ %sub, %entry ]
  %cmp6 = fcmp oeq double %cond5, 0.000000e+00
  br i1 %cmp6, label %if.then, label %if.end

becomes

a:
  br i1 %cmp1, label %b, label %if.then

b:
  %cond5 = phi double [ %sub, %entry ], [ %add, %a ]
  %cmp6 = fcmp oeq double %cond5, 0.000000e+00
  br i1 %cmp6, label %if.then, label %if.end

Skipping block b completely if possible.

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

11 years agoCommit a no-op change to StringRef to (hopefully) trigger build bots.
Chandler Carruth [Wed, 7 Aug 2013 09:52:34 +0000 (09:52 +0000)]
Commit a no-op change to StringRef to (hopefully) trigger build bots.
r187874 seems to have been missed by the build bot infrastructure, and
the subsequent commits to compiler-rt don't seem to be queuing up new
build requsets. Hopefully this will.

As it happens, having the space here is the more common formatting. =]

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

11 years agoAdd support for linking against a curses library when available and
Chandler Carruth [Wed, 7 Aug 2013 08:47:36 +0000 (08:47 +0000)]
Add support for linking against a curses library when available and
using it to detect whether or not a terminal supports colors. This
replaces a particularly egregious hack that merely compared the TERM
environment variable to "dumb". That doesn't really translate to
a reasonable experience for users that have actually ensured their
terminal's capabilities are accurately reflected.

This makes testing a terminal for color support somewhat more expensive,
but it is called very rarely anyways. The important fast path when the
output is being piped somewhere is already in place.

The global lock may seem excessive, but the spec for calling into curses
is *terrible*. The whole library is terrible, and I spent quite a bit of
time looking for a better way of doing this before convincing myself
that this was the fundamentally correct way to behave. The damage of the
curses library is very narrowly confined, and we continue to use raw
escape codes for actually manipulating the colors which is a much sane
system than directly using curses here (IMO).

If this causes trouble for folks, please let me know. I've tested it on
Linux and will watch the bots carefully. I've also worked to account for
the variances of curses interfaces that I could finde documentation for,
but that may not have been sufficient.

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

11 years agoRemove some parens. No functional change.
Eric Christopher [Wed, 7 Aug 2013 08:35:10 +0000 (08:35 +0000)]
Remove some parens. No functional change.

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

11 years agoSimplify code. No functional change intended.
Craig Topper [Wed, 7 Aug 2013 08:16:07 +0000 (08:16 +0000)]
Simplify code. No functional change intended.

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

11 years agoInitialize SIInsertWaits::ExpInstrTypesSeen in the pass constructor.
Evgeniy Stepanov [Wed, 7 Aug 2013 07:47:41 +0000 (07:47 +0000)]
Initialize SIInsertWaits::ExpInstrTypesSeen in the pass constructor.

This value may be used uninitialized in SIInsertWaits::insertWait.
Found with MemorySanitizer.

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

11 years agoRemove the assertion for now. This breaks lld.
Dmitri Gribenko [Wed, 7 Aug 2013 07:12:08 +0000 (07:12 +0000)]
Remove the assertion for now.  This breaks lld.

lld has a hashtable with StringRef keys; it needs to iterate over the keys in
*insertion* order.  This is currently implemented as std::vector<StringRef> +
DenseMap<StringRef, T>.  This will probably need a proper
DenseMapInfo<StringRef> if we don't want to lose memory/performance by
migrating to a different data structure.

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

11 years agoLLVM Interpreter: MIPS tests should pass
Elena Demikhovsky [Wed, 7 Aug 2013 06:13:21 +0000 (06:13 +0000)]
LLVM Interpreter: MIPS tests should pass

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

11 years agoYAMLTraits.h: replace DenseMap that used a bad implementation of DenseMapInfo
Dmitri Gribenko [Wed, 7 Aug 2013 05:51:27 +0000 (05:51 +0000)]
YAMLTraits.h: replace DenseMap that used a bad implementation of DenseMapInfo
for StringRef with a StringMap

The bug is that the empty key compares equal to the tombstone key.

Also added an assertion to DenseMap to catch similar bugs in future.

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

11 years agoChange public functions of LTOCodeGenerator from ret-false-on-succ to ret-true-on...
Shuxin Yang [Wed, 7 Aug 2013 05:19:23 +0000 (05:19 +0000)]
Change public functions of LTOCodeGenerator from ret-false-on-succ to ret-true-on-succ.

As of this revision, all functions of LTOCodeGenerator are consistent in
ret-true-on-succ.

Tested on multiple OSes.

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