oota-llvm.git
11 years agoChange TargetLowering::getRegClassFor to take an MVT, instead of EVT.
Patrik Hagglund [Thu, 13 Dec 2012 06:34:11 +0000 (06:34 +0000)]
Change TargetLowering::getRegClassFor to take an MVT, instead of EVT.

Accordingly, add helper funtions getSimpleValueType (in parallel to
getValueType) in SDValue, SDNode, and TargetLowering.

This is the first, in a series of patches.

This is the second attempt. In the first attempt (r169837), a few
getSimpleVT() were hoisted too far, detected by bootstrap failures.

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

11 years agoAdd a funciton to get the segment name of a section.
Rafael Espindola [Thu, 13 Dec 2012 04:07:18 +0000 (04:07 +0000)]
Add a funciton to get the segment name of a section.

On MachO, sections also have segment names. When a tool looking at a .o file
prints a segment name, this is what they mean. In reality, a .o has only one,
anonymous, segment.

This patch adds a MachO only function to fetch that segment name. I named it
getSectionFinalSegmentName since the main use for the name seems to be informing
the linker with segment this section should go to.

The patch also changes MachOObjectFile::getSectionName to return just the
section name instead of computing SegmentName,SectionName.

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

11 years agoMissed these calls from the previous rename somehow.
Rafael Espindola [Thu, 13 Dec 2012 03:42:31 +0000 (03:42 +0000)]
Missed these calls from the previous rename somehow.

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

11 years agoRename isPowerOfTwo to isKnownToBeAPowerOfTwo.
Rafael Espindola [Thu, 13 Dec 2012 03:37:24 +0000 (03:37 +0000)]
Rename isPowerOfTwo to isKnownToBeAPowerOfTwo.

In a previous thread it was pointed out that isPowerOfTwo is not a very precise
name since it can return false for powers of two if it is unable to show that
they are powers of two.

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

11 years ago[mips] Do not copy GOT address to register $gp if the function being called has
Akira Hatanaka [Thu, 13 Dec 2012 03:17:29 +0000 (03:17 +0000)]
[mips] Do not copy GOT address to register $gp if the function being called has
internal linkage.

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

11 years agoPattern matching code for intrinsics.
Michael Ilseman [Thu, 13 Dec 2012 03:13:36 +0000 (03:13 +0000)]
Pattern matching code for intrinsics.

Provides m_Argument that allows matching against a CallSite's specified argument. Provides m_Intrinsic pattern that can be templatized over the intrinsic id and bind/match arguments similarly to other pattern matchers. Implementations provided for 0 to 4 arguments, though it's very simple to extend for more. Also provides example template specialization for bswap (m_BSwap) and example of code cleanup for its use.

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

11 years agoRemove extraneous debugging code.
Eric Christopher [Thu, 13 Dec 2012 03:07:28 +0000 (03:07 +0000)]
Remove extraneous debugging code.

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

11 years agoUse default label name for a section in emitting abbreviation
Eric Christopher [Thu, 13 Dec 2012 03:00:38 +0000 (03:00 +0000)]
Use default label name for a section in emitting abbreviation
section to help prep some code to be split about.

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

11 years agoAdd a way of printing out an arbitrary label name for a section
Eric Christopher [Thu, 13 Dec 2012 03:00:35 +0000 (03:00 +0000)]
Add a way of printing out an arbitrary label name for a section
given the section.

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

11 years agom_CombineOr and m_CombineAnd pattern combinators
Michael Ilseman [Thu, 13 Dec 2012 02:55:53 +0000 (02:55 +0000)]
m_CombineOr and m_CombineAnd pattern combinators

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

11 years agoDefine getHostCPUFeatures for ARM Linux platform
Hao Liu [Thu, 13 Dec 2012 02:40:20 +0000 (02:40 +0000)]
Define getHostCPUFeatures for ARM Linux platform

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

11 years ago[mips] Delete all floating point instruction classes that are no longer used.
Akira Hatanaka [Thu, 13 Dec 2012 02:05:02 +0000 (02:05 +0000)]
[mips] Delete all floating point instruction classes that are no longer used.

No functionality change.

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

11 years agoMake this Lit config file a bit slimmer
Eli Bendersky [Thu, 13 Dec 2012 02:03:46 +0000 (02:03 +0000)]
Make this Lit config file a bit slimmer

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

11 years ago[mips] Modify definitions of floating point conditional move instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:41:15 +0000 (01:41 +0000)]
[mips] Modify definitions of floating point conditional move instructions.

No functionality change.

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

11 years agoFix a bug in DAGCombiner::MatchBSwapHWord. Make sure the node has operands before...
Evan Cheng [Thu, 13 Dec 2012 01:34:32 +0000 (01:34 +0000)]
Fix a bug in DAGCombiner::MatchBSwapHWord. Make sure the node has operands before referencing them. rdar://12868039

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

11 years ago[mips] Modify definitions of floating point comparison instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:34:09 +0000 (01:34 +0000)]
[mips] Modify definitions of floating point comparison instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of floating point branch instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:32:36 +0000 (01:32 +0000)]
[mips] Modify definitions of floating point branch instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of floating point indexed load and store instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:30:49 +0000 (01:30 +0000)]
[mips] Modify definitions of floating point indexed load and store instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of floating point multiply-add/sub instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:27:48 +0000 (01:27 +0000)]
[mips] Modify definitions of floating point multiply-add/sub instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of floating point load and store instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:24:00 +0000 (01:24 +0000)]
[mips] Modify definitions of floating point load and store instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of move from/to coprocessor instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:16:49 +0000 (01:16 +0000)]
[mips] Modify definitions of move from/to coprocessor instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of two register operand floating point instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:14:07 +0000 (01:14 +0000)]
[mips] Modify definitions of two register operand floating point instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of three register operand floating point instructions
Akira Hatanaka [Thu, 13 Dec 2012 01:07:37 +0000 (01:07 +0000)]
[mips] Modify definitions of three register operand floating point instructions
and separate encoding information from the rest.

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

11 years agoTake into account minimize size attribute in the inliner.
Quentin Colombet [Thu, 13 Dec 2012 01:05:25 +0000 (01:05 +0000)]
Take into account minimize size attribute in the inliner.

Better controls the inlining of functions when the caller function has MinSize attribute.
Basically, when the caller function has this attribute, we do not "force" the inlining
of callee functions carrying the InlineHint attribute (i.e., functions defined with
inline keyword)

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

11 years agoAvoid setIsInsideBundle in Target/R600.
Jakob Stoklund Olesen [Thu, 13 Dec 2012 00:59:38 +0000 (00:59 +0000)]
Avoid setIsInsideBundle in Target/R600.

This function is going to be removed.

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

11 years agoExpress prepend and append in terms of a more generic insert().
Jakob Stoklund Olesen [Thu, 13 Dec 2012 00:59:36 +0000 (00:59 +0000)]
Express prepend and append in terms of a more generic insert().

Also add an MIBundleBuilder constructor that takes an existing bundle.
Together these functions make it possible to add instructions to
existing bundles.

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

11 years ago[mips] Move classes that do not belong in MipsInstrFormats.td into
Akira Hatanaka [Thu, 13 Dec 2012 00:49:23 +0000 (00:49 +0000)]
[mips] Move classes that do not belong in MipsInstrFormats.td into
MipsInstrFPU.td.

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

11 years ago[mips] Set isCommutable flag in a more explicit way.
Akira Hatanaka [Thu, 13 Dec 2012 00:46:23 +0000 (00:46 +0000)]
[mips] Set isCommutable flag in a more explicit way.

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

11 years ago[mips] Remove fmt from the parameter list of classes FMADDSUB and FNMADDSUB.
Akira Hatanaka [Thu, 13 Dec 2012 00:38:59 +0000 (00:38 +0000)]
[mips] Remove fmt from the parameter list of classes FMADDSUB and FNMADDSUB.

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

11 years ago[mips] Remove single-precision floating point instruction from multiclass
Akira Hatanaka [Thu, 13 Dec 2012 00:35:54 +0000 (00:35 +0000)]
[mips] Remove single-precision floating point instruction from multiclass
FFR2P_M.

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

11 years ago[mips] Move class IsCommutable into MipsInstrInfo.td.
Akira Hatanaka [Thu, 13 Dec 2012 00:32:01 +0000 (00:32 +0000)]
[mips] Move class IsCommutable into MipsInstrInfo.td.

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

11 years ago[mips] Remove single-precision floating point instructions from multiclasses
Akira Hatanaka [Thu, 13 Dec 2012 00:29:29 +0000 (00:29 +0000)]
[mips] Remove single-precision floating point instructions from multiclasses
FFR1_W_M and FFR1P_M. The new instruction definitions have one-to-one
correspondence with the instructions in the ISA manual.

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

11 years agoFix a bogus comment
Eli Bendersky [Thu, 13 Dec 2012 00:24:56 +0000 (00:24 +0000)]
Fix a bogus comment

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

11 years agoTeach the cost model about the optimization in r169904: Truncation of induction varia...
Nadav Rotem [Thu, 13 Dec 2012 00:21:03 +0000 (00:21 +0000)]
Teach the cost model about the optimization in r169904: Truncation of induction variables costs the same as scalar trunc.

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

11 years agoTypo.
Chad Rosier [Thu, 13 Dec 2012 00:18:46 +0000 (00:18 +0000)]
Typo.

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

11 years agoMake the MCStreamer have a reset method and call that after finalization of the asm...
Pedro Artigas [Wed, 12 Dec 2012 22:59:46 +0000 (22:59 +0000)]
Make the MCStreamer have a reset method and call that after finalization of the asm printer,
also changed MCContext to a single reset only method for simplicity as requested on the list

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

11 years ago[ms-inline asm] Make sure we fail gracefully on parse errors. Parse errors
Chad Rosier [Wed, 12 Dec 2012 22:45:52 +0000 (22:45 +0000)]
[ms-inline asm] Make sure we fail gracefully on parse errors.  Parse errors
should only occur on invalid input.  Instruction matching errors aren't
unexpected, so we can't rely on the AsmParsers HadError variable directly.
rdar://12840278

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

11 years agoYAMLIO: Remove all of the template instantiation hacks, I don't see why they're neces...
Benjamin Kramer [Wed, 12 Dec 2012 22:40:02 +0000 (22:40 +0000)]
YAMLIO: Remove all of the template instantiation hacks, I don't see why they're necessary and it breaks linking of the unit tests.

Also comes with a clang-format run on the cpp file, it had major style violations.

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

11 years agoTemporarily disable test cases until they compile with g++ too.
Nick Kledzik [Wed, 12 Dec 2012 22:39:45 +0000 (22:39 +0000)]
Temporarily disable test cases until they compile with g++ too.

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

11 years agoUnbreak the build. Fallout from r170019.
David Blaikie [Wed, 12 Dec 2012 22:14:32 +0000 (22:14 +0000)]
Unbreak the build. Fallout from r170019.

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

11 years agoAlignedCharArrayUnion is erroring with non-clang compilers
Nick Kledzik [Wed, 12 Dec 2012 22:03:57 +0000 (22:03 +0000)]
AlignedCharArrayUnion is erroring with non-clang compilers

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

11 years agoFix calls to getAsSignedInteger() to use long long - not int64_t
Nick Kledzik [Wed, 12 Dec 2012 21:42:49 +0000 (21:42 +0000)]
Fix calls to getAsSignedInteger() to use long long - not int64_t

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

11 years agoMakefile.sphinx: reST conversion is complete!
Dmitri Gribenko [Wed, 12 Dec 2012 21:35:43 +0000 (21:35 +0000)]
Makefile.sphinx: reST conversion is complete!

No need to copy HTML files anymore.

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

11 years agoDocumentation: use paths relative to document root in links.
Dmitri Gribenko [Wed, 12 Dec 2012 21:16:29 +0000 (21:16 +0000)]
Documentation: use paths relative to document root in links.

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

11 years agoFix typo, which prevent test from being check.
Jakub Staszak [Wed, 12 Dec 2012 21:10:56 +0000 (21:10 +0000)]
Fix typo, which prevent test from being check.

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

11 years agoRestore the PHI optimization I accidently removed
Michael Ilseman [Wed, 12 Dec 2012 20:59:36 +0000 (20:59 +0000)]
Restore the PHI optimization I accidently removed

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

11 years agounHECKify test fixed by Jacob in r159003.
Jakub Staszak [Wed, 12 Dec 2012 20:58:42 +0000 (20:58 +0000)]
unHECKify test fixed by Jacob in r159003.

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

11 years agoRemove trailing whitespace
Michael Ilseman [Wed, 12 Dec 2012 20:57:53 +0000 (20:57 +0000)]
Remove trailing whitespace

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

11 years agoFix the build on case sensitive file systems.
Benjamin Kramer [Wed, 12 Dec 2012 20:55:44 +0000 (20:55 +0000)]
Fix the build on case sensitive file systems.

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

11 years agoSimplify negated bit test
David Majnemer [Wed, 12 Dec 2012 20:48:54 +0000 (20:48 +0000)]
Simplify negated bit test

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

11 years agoInitial implementation of a utility for converting native data
Nick Kledzik [Wed, 12 Dec 2012 20:46:15 +0000 (20:46 +0000)]
Initial implementation of a utility for converting native data
structures to and from YAML using traits.  The first client will
be the test suite of lld.  The documentation will show up at:

   http://llvm.org/docs/YamlIO.html

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

11 years agoFix a logic bug in inline expansion of memcpy / memset with an overlapping
Evan Cheng [Wed, 12 Dec 2012 20:43:23 +0000 (20:43 +0000)]
Fix a logic bug in inline expansion of memcpy / memset with an overlapping
load / store pair. It's not legal to use a wider load than the size of
the remaining bytes if it's the first pair of load / store.

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

11 years agounHECKify test. It was fixed by Chris in 2009.
Jakub Staszak [Wed, 12 Dec 2012 20:43:00 +0000 (20:43 +0000)]
unHECKify test. It was fixed by Chris in 2009.

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

11 years agoThe ordering of two relocations on the same instruction is apparently not
Bill Schmidt [Wed, 12 Dec 2012 20:29:20 +0000 (20:29 +0000)]
The ordering of two relocations on the same instruction is apparently not
predictable when compiled on at least one non-PowerPC host.  Source of
nondeterminism not apparent.  Restrict the test to build on PowerPC hosts
for now while looking into the issue further.

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

11 years agoFix typo in test-case.
Jakub Staszak [Wed, 12 Dec 2012 20:29:06 +0000 (20:29 +0000)]
Fix typo in test-case.

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

11 years ago[mips] Fix a memory leak bug report by NAKAMURA Takumi.
Akira Hatanaka [Wed, 12 Dec 2012 20:09:58 +0000 (20:09 +0000)]
[mips] Fix a memory leak bug report by NAKAMURA Takumi.

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

11 years agoDocumentation: SphinxQuickstartTemplate.rst: add guidelines about highlighting
Dmitri Gribenko [Wed, 12 Dec 2012 20:07:18 +0000 (20:07 +0000)]
Documentation: SphinxQuickstartTemplate.rst: add guidelines about highlighting
console sessions and add more highlighter names.

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

11 years agoMake naming consistent, add comments and sanity asserts
Eli Bendersky [Wed, 12 Dec 2012 19:54:05 +0000 (19:54 +0000)]
Make naming consistent, add comments and sanity asserts

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

11 years agoFix typo.
Jakub Staszak [Wed, 12 Dec 2012 19:47:04 +0000 (19:47 +0000)]
Fix typo.

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

11 years agoFix indentation.
Nadav Rotem [Wed, 12 Dec 2012 19:39:36 +0000 (19:39 +0000)]
Fix indentation.

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

11 years agoLoopVectorizer: Use the "optsize" attribute to decide if we are allowed to increase...
Nadav Rotem [Wed, 12 Dec 2012 19:29:45 +0000 (19:29 +0000)]
LoopVectorizer: Use the "optsize" attribute to decide if we are allowed to increase the function size.

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

11 years agoThis patch implements local-dynamic TLS model support for the 64-bit
Bill Schmidt [Wed, 12 Dec 2012 19:29:35 +0000 (19:29 +0000)]
This patch implements local-dynamic TLS model support for the 64-bit
PowerPC target.  This is the last of the four models, so we now have
full TLS support.

This is mostly a straightforward extension of the general dynamic model.
I had to use an additional Chain operand to tie ADDIS_DTPREL_HA to the
register copy following ADDI_TLSLD_L; otherwise everything above the
ADDIS_DTPREL_HA appeared dead and was removed.

As before, there are new test cases to test the assembly generation, and
the relocations output during integrated assembly.  The expected code
gen sequence can be read in test/CodeGen/PowerPC/tls-ld.ll.

There are a couple of things I think can be done more efficiently in the
overall TLS code, so there will likely be a clean-up patch forthcoming;
but for now I want to be sure the functionality is in place.

Bill

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

11 years agoKerning.
Bill Wendling [Wed, 12 Dec 2012 19:21:53 +0000 (19:21 +0000)]
Kerning.

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

11 years agoDocumentation: llvm-bcanalyzer.rst: cleanup.
Dmitri Gribenko [Wed, 12 Dec 2012 19:15:53 +0000 (19:15 +0000)]
Documentation: llvm-bcanalyzer.rst: cleanup.

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

11 years agoDocumentation: AliasAnalysis.rst: improve internal and external links
Dmitri Gribenko [Wed, 12 Dec 2012 17:03:50 +0000 (17:03 +0000)]
Documentation: AliasAnalysis.rst: improve internal and external links

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

11 years agoDocumentation: convert WritingAnLLVMPass.html to reST.
Dmitri Gribenko [Wed, 12 Dec 2012 17:02:44 +0000 (17:02 +0000)]
Documentation: convert WritingAnLLVMPass.html to reST.

Patch by Anthony Mykhailenko with small fixes by me.

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

11 years agoDocumentation: cleanup
Dmitri Gribenko [Wed, 12 Dec 2012 16:58:13 +0000 (16:58 +0000)]
Documentation: cleanup

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

11 years agoThe TargetData is not used for the isPowerOfTwo determination. It has never
Rafael Espindola [Wed, 12 Dec 2012 16:52:40 +0000 (16:52 +0000)]
The TargetData is not used for the isPowerOfTwo determination.  It has never
been used in the first place.  It simply was passed to the function and to the
recursive invocations.  Simply drop the parameter and update the callers for the
new signature.

Patch by Saleem Abdulrasool!

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

11 years agoImprove debug info generated with enabled AddressSanitizer.
Alexey Samsonov [Wed, 12 Dec 2012 14:31:53 +0000 (14:31 +0000)]
Improve debug info generated with enabled AddressSanitizer.

When ASan replaces <alloca instruction> with
<offset into a common large alloca>, it should also patch
llvm.dbg.declare calls and replace debug info descriptors to mark
that we've replaced alloca with a value that stores an address
of the user variable, not the user variable itself.

See PR11818 for more context.

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

11 years agoDocumentation: use a 'console' highlighter for terminal output examples. This
Dmitri Gribenko [Wed, 12 Dec 2012 14:23:14 +0000 (14:23 +0000)]
Documentation: use a 'console' highlighter for terminal output examples.  This
gives a nicer output than 'bash'.

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

11 years agoDocumentation: use a 'console' highlighter for terminal output examples. This
Dmitri Gribenko [Wed, 12 Dec 2012 13:56:37 +0000 (13:56 +0000)]
Documentation: use a 'console' highlighter for terminal output examples.  This
gives a nicer output than 'bash'.

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

11 years agollvm/test/CodeGen/X86/atom-bypass-slow-division.ll: Fix possible typo(s) in CHECK...
NAKAMURA Takumi [Wed, 12 Dec 2012 13:34:20 +0000 (13:34 +0000)]
llvm/test/CodeGen/X86/atom-bypass-slow-division.ll: Fix possible typo(s) in CHECK-NOT lines.

Found by Alexander Zinenko, thanks!

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

11 years agollvm/test/CodeGen/X86/atom-bypass-slow-division.ll: Rename symbols, s/test_/Test...
NAKAMURA Takumi [Wed, 12 Dec 2012 13:34:14 +0000 (13:34 +0000)]
llvm/test/CodeGen/X86/atom-bypass-slow-division.ll: Rename symbols, s/test_/Test/g, not to mismatch "CHECK(-NOT): test".

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

11 years agoAdd ARM NONE and PREL31 relocation types.
Logan Chien [Wed, 12 Dec 2012 07:14:46 +0000 (07:14 +0000)]
Add ARM NONE and PREL31 relocation types.

Add R_ARM_NONE and R_ARM_PREL31 relocation types
to MCExpr.  Both of them will be used while
generating .ARM.extab and .ARM.exidx sections.

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

11 years agoRemove some dead code.
Rafael Espindola [Wed, 12 Dec 2012 06:18:15 +0000 (06:18 +0000)]
Remove some dead code.

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

11 years ago[CMake] Fixup R600.
NAKAMURA Takumi [Wed, 12 Dec 2012 03:34:26 +0000 (03:34 +0000)]
[CMake] Fixup R600.

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

11 years agoSorry about the churn. One more change to getOptimalMemOpType() hook. Did I
Evan Cheng [Wed, 12 Dec 2012 02:34:41 +0000 (02:34 +0000)]
Sorry about the churn. One more change to getOptimalMemOpType() hook. Did I
mention the inline memcpy / memset expansion code is a mess?

This patch split the ZeroOrLdSrc argument into two: IsMemset and ZeroMemset.
The first indicates whether it is expanding a memset or a memcpy / memmove.
The later is whether the memset is a memset of zero. It's totally possible
(likely even) that targets may want to do different things for memcpy and
memset of zero.

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

11 years agollvm/test/CodeGen/X86/store_op_load_fold.ll: Fix typo, s/CHECK_NEXT/CHECK-NEXT/
NAKAMURA Takumi [Wed, 12 Dec 2012 01:41:01 +0000 (01:41 +0000)]
llvm/test/CodeGen/X86/store_op_load_fold.ll: Fix typo, s/CHECK_NEXT/CHECK-NEXT/

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

11 years agollvm/test/CodeGen/X86/store_op_load_fold.ll: Add explicit triple.
NAKAMURA Takumi [Wed, 12 Dec 2012 01:40:56 +0000 (01:40 +0000)]
llvm/test/CodeGen/X86/store_op_load_fold.ll: Add explicit triple.

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

11 years agoFix the ascii drawing that was ruined when I split the H and CPP
Nadav Rotem [Wed, 12 Dec 2012 01:33:47 +0000 (01:33 +0000)]
Fix the ascii drawing that was ruined when I split the H and CPP

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

11 years ago- Rename isLegalMemOpType to isSafeMemOpType. "Legal" is a very overloade term.
Evan Cheng [Wed, 12 Dec 2012 01:32:07 +0000 (01:32 +0000)]
- Rename isLegalMemOpType to isSafeMemOpType. "Legal" is a very overloade term.
Also added more comments to explain why it is generally ok to return true.
- Rename getOptimalMemOpType argument IsZeroVal to ZeroOrLdSrc. It's meant to
be true for loaded source (memcpy) or zero constants (memset). The poor name
choice is probably some kind of legacy issue.

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

11 years agofix a typo.
Nadav Rotem [Wed, 12 Dec 2012 01:31:10 +0000 (01:31 +0000)]
fix a typo.

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

11 years agoDAGCombine: clamp hi bit in APInt::getBitsSet to avoid assertion
Manman Ren [Wed, 12 Dec 2012 01:13:50 +0000 (01:13 +0000)]
DAGCombine: clamp hi bit in APInt::getBitsSet to avoid assertion

rdar://12838504

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

11 years agoLoopVectorizer: When -Os is used, vectorize only loops that dont require a tail loop...
Nadav Rotem [Wed, 12 Dec 2012 01:11:46 +0000 (01:11 +0000)]
LoopVectorizer: When -Os is used, vectorize only loops that dont require a tail loop. There is no testcase because I dont know of a way to initialize the loop vectorizer pass without adding an additional hidden flag.

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

11 years agoAvoid using lossy load / stores for memcpy / memset expansion. e.g.
Evan Cheng [Wed, 12 Dec 2012 00:42:09 +0000 (00:42 +0000)]
Avoid using lossy load / stores for memcpy / memset expansion. e.g.
f64 load / store on non-SSE2 x86 targets.

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

11 years agoHave SimplifyBinOp call the new FAdd/FSub/FMul helpers, with fast-math flags off
Michael Ilseman [Wed, 12 Dec 2012 00:29:16 +0000 (00:29 +0000)]
Have SimplifyBinOp call the new FAdd/FSub/FMul helpers, with fast-math flags off

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

11 years ago- Fix a problematic way in creating all-the-1 APInt.
Shuxin Yang [Wed, 12 Dec 2012 00:29:03 +0000 (00:29 +0000)]
- Fix a problematic way in creating all-the-1 APInt.
- Propagate "exact" bit of [l|a]shr instruction.

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

11 years agoRemove redunant optimizations from InstCombine, instead call the appropriate function...
Michael Ilseman [Wed, 12 Dec 2012 00:28:32 +0000 (00:28 +0000)]
Remove redunant optimizations from InstCombine, instead call the appropriate functions from SimplifyInstruction

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

11 years agoAdded a slew of SimplifyInstruction floating-point optimizations, many of which take...
Michael Ilseman [Wed, 12 Dec 2012 00:27:46 +0000 (00:27 +0000)]
Added a slew of SimplifyInstruction floating-point optimizations, many of which take advantage of fast-math flags. Test cases included.

  fsub X, +0 ==> X
  fsub X, -0 ==> X, when we know X is not -0
  fsub +/-0.0, (fsub -0.0, X) ==> X
  fsub nsz +/-0.0, (fsub +/-0.0, X) ==> X
  fsub nnan ninf X, X ==> 0.0
  fadd nsz X, 0 ==> X
  fadd [nnan ninf] X, (fsub [nnan ninf] 0, X) ==> 0
    where nnan and ninf have to occur at least once somewhere in this expression
  fmul X, 1.0 ==> X

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

11 years agoPattern matchers for floating point values
Michael Ilseman [Wed, 12 Dec 2012 00:23:43 +0000 (00:23 +0000)]
Pattern matchers for floating point values

m_ConstantFP - match and bind a float constant
m_SpecificConstantFP - match a specific floating point value or vector of floats of that value
m_FPOne - match a floating point 1.0 or vector of 1.0s
m_NegZero - match -0.0
m_AnyZero - match 0 or -0.0

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

11 years agoRemove FIXMEs surrounding Constant[Data]Vectors, instead
Michael Ilseman [Wed, 12 Dec 2012 00:21:43 +0000 (00:21 +0000)]
Remove FIXMEs surrounding Constant[Data]Vectors, instead

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

11 years agoTrim unneeded header #include.
Jim Grosbach [Tue, 11 Dec 2012 23:39:51 +0000 (23:39 +0000)]
Trim unneeded header #include.

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

11 years agoDocumentation: cleanup: remove useless anchors and write :ref:s explicitly.
Dmitri Gribenko [Tue, 11 Dec 2012 23:35:23 +0000 (23:35 +0000)]
Documentation: cleanup: remove useless anchors and write :ref:s explicitly.

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

11 years agoARM: Remove old testing option.
Jim Grosbach [Tue, 11 Dec 2012 23:31:12 +0000 (23:31 +0000)]
ARM: Remove old testing option.

Pre-regalloc frame allocation and referencing has been on by default
for ages. No need for the testing option that disables it.

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

11 years agoARM: Remove old testing options.
Jim Grosbach [Tue, 11 Dec 2012 23:31:10 +0000 (23:31 +0000)]
ARM: Remove old testing options.

Base pointer referencing has been enabled for ages.

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

11 years agoReplace TargetLowering::isIntImmLegal() with
Evan Cheng [Tue, 11 Dec 2012 23:26:14 +0000 (23:26 +0000)]
Replace TargetLowering::isIntImmLegal() with
ScalarTargetTransformInfo::getIntImmCost() instead. "Legal" is a poorly defined
term for something like integer immediate materialization. It is always possible
to materialize an integer immediate. Whether to use it for memcpy expansion is
more a "cost" conceern.

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

11 years agoDocumentation: Lexicon.rst: add 'SLP' acronym
Dmitri Gribenko [Tue, 11 Dec 2012 23:13:23 +0000 (23:13 +0000)]
Documentation: Lexicon.rst: add 'SLP' acronym

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

11 years agoPR14574. Fix a bug in the code that calculates the mask the converted PHIs in if...
Nadav Rotem [Tue, 11 Dec 2012 21:30:14 +0000 (21:30 +0000)]
PR14574. Fix a bug in the code that calculates the mask the converted PHIs in if-conversion.

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

11 years agoAdd R600 backend
Tom Stellard [Tue, 11 Dec 2012 21:25:42 +0000 (21:25 +0000)]
Add R600 backend

A new backend supporting AMD GPUs: Radeon HD2XXX - HD7XXX

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

11 years agoThis patch implements the general dynamic TLS model for 64-bit PowerPC.
Bill Schmidt [Tue, 11 Dec 2012 20:30:11 +0000 (20:30 +0000)]
This patch implements the general dynamic TLS model for 64-bit PowerPC.

Given a thread-local symbol x with global-dynamic access, the generated
code to obtain x's address is:

     Instruction                            Relocation            Symbol
  addis ra,r2,x@got@tlsgd@ha           R_PPC64_GOT_TLSGD16_HA       x
  addi  r3,ra,x@got@tlsgd@l            R_PPC64_GOT_TLSGD16_L        x
  bl __tls_get_addr(x@tlsgd)           R_PPC64_TLSGD                x
                                       R_PPC64_REL24           __tls_get_addr
  nop
  <use address in r3>

The implementation borrows from the medium code model work for introducing
special forms of ADDIS and ADDI into the DAG representation.  This is made
slightly more complicated by having to introduce a call to the external
function __tls_get_addr.  Using the full call machinery is overkill and,
more importantly, makes it difficult to add a special relocation.  So I've
introduced another opcode GET_TLS_ADDR to represent the function call, and
surrounded it with register copies to set up the parameter and return value.

Most of the code is pretty straightforward.  I ran into one peculiarity
when I introduced a new PPC opcode BL8_NOP_ELF_TLSGD, which is just like
BL8_NOP_ELF except that it takes another parameter to represent the symbol
("x" above) that requires a relocation on the call.  Something in the
TblGen machinery causes BL8_NOP_ELF and BL8_NOP_ELF_TLSGD to be treated
identically during the emit phase, so this second operand was never
visited to generate relocations.  This is the reason for the slightly
messy workaround in PPCMCCodeEmitter.cpp:getDirectBrEncoding().

Two new tests are included to demonstrate correct external assembly and
correct generation of relocations using the integrated assembler.

Comments welcome!

Thanks,
Bill

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