oota-llvm.git
11 years agoWhitespace.
NAKAMURA Takumi [Wed, 4 Sep 2013 14:12:12 +0000 (14:12 +0000)]
Whitespace.

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

11 years agoFix linking of unnamed_addr.
Rafael Espindola [Wed, 4 Sep 2013 14:05:09 +0000 (14:05 +0000)]
Fix linking of unnamed_addr.

This was regression from r134829. When linking we have to be conservative. If
one of the symbols has a significant address, then the result should have it
too.

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

11 years agoInstCombine: allow unmasked icmps to be combined with logical ops
Tim Northover [Wed, 4 Sep 2013 11:57:17 +0000 (11:57 +0000)]
InstCombine: allow unmasked icmps to be combined with logical ops

"(icmp op i8 A, B)" is equivalent to "(icmp op i8 (A & 0xff), B)" as a
degenerate case. Allowing this as a "masked" comparison when analysing "(icmp)
&/| (icmp)" allows us to combine them in more cases.

rdar://problem/7625728

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

11 years agoInstCombine: look for masked compares with subset relation
Tim Northover [Wed, 4 Sep 2013 11:57:13 +0000 (11:57 +0000)]
InstCombine: look for masked compares with subset relation

Even in cases which aren't universally optimisable like "(A & B) != 0 && (A &
C) != 0", the masks can make one of the comparisons completely redundant. In
this case, since we've gone to the effort of spotting masked comparisons we
should combine them.

rdar://problem/7625728

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

11 years agoInplement aarch64 neon instructions in AdvSIMD(shift). About 24 shift instructions:
Hao Liu [Wed, 4 Sep 2013 09:28:24 +0000 (09:28 +0000)]
Inplement aarch64 neon instructions in AdvSIMD(shift). About 24 shift instructions:
      sshr,ushr,ssra,usra,srshr,urshr,srsra,ursra,sri,shl,sli,sqshlu,sqshl,uqshl,shrn,sqrshrun,sqshrn,uqshr,sqrshrn,uqrshrn,sshll,ushll
 and 4 convert instructions:
      scvtf,ucvtf,fcvtzs,fcvtzu

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

11 years agoUse Intrinsic::ID for the pattern match templates, fixing a signed/unsigned
Eric Christopher [Wed, 4 Sep 2013 05:08:32 +0000 (05:08 +0000)]
Use Intrinsic::ID for the pattern match templates, fixing a signed/unsigned
comparison warning.

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

11 years agoRevert "Revert "Remove the darwin gdb option, that version of gdb is now dead and...
Michael Gottesman [Wed, 4 Sep 2013 04:39:38 +0000 (04:39 +0000)]
Revert "Revert "Remove the darwin gdb option, that version of gdb is now dead and the rest of the compatibility should be done on a dwarf-N level.""

This reverts commit r189913.

Talked with Eric on IRC. I am going to XFAIL the failing test since it
is using what Eric described as "the member hack" which was needed on
that old GDB.

Sorry for the noise!

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

11 years agoRevert "Remove the darwin gdb option, that version of gdb is now dead and the rest...
Michael Gottesman [Wed, 4 Sep 2013 04:31:56 +0000 (04:31 +0000)]
Revert "Remove the darwin gdb option, that version of gdb is now dead and the rest of the compatibility should be done on a dwarf-N level."

This reverts commit r189903.

This commit broke the phase 1 buildbot for a while.

http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RAincremental/builds/6684

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

11 years agoAdd llvm namespace to llvm::next.
Michael Gottesman [Wed, 4 Sep 2013 04:26:09 +0000 (04:26 +0000)]
Add llvm namespace to llvm::next.

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

11 years agoUse llvm::next() instead of incrementing begin iterators of std::vector.
Michael Gottesman [Wed, 4 Sep 2013 04:19:01 +0000 (04:19 +0000)]
Use llvm::next() instead of incrementing begin iterators of std::vector.

Iterator of std::vector may be implemented as a raw pointer. In
this case begin iterators are rvalues and cannot be incremented.
For example, this is the case with STDCXX implementation of vector.

Patch by Konstantin Tokarev <annulen@yandex.ru>.

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

11 years agoMCDwarf.h: Prune a few stray \param(s). [-Wdocumentation]
NAKAMURA Takumi [Wed, 4 Sep 2013 02:10:32 +0000 (02:10 +0000)]
MCDwarf.h: Prune a few stray \param(s). [-Wdocumentation]

\param should be used to describe individual parameters. Use a command like \a or \c for visual enhancements.

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

11 years agoRemove the darwin gdb option, that version of gdb is now dead and
Eric Christopher [Wed, 4 Sep 2013 02:02:10 +0000 (02:02 +0000)]
Remove the darwin gdb option, that version of gdb is now dead and
the rest of the compatibility should be done on a dwarf-N level.

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

11 years agoMake the default dwarf version 3 for darwin when we can't find one
Eric Christopher [Wed, 4 Sep 2013 01:38:30 +0000 (01:38 +0000)]
Make the default dwarf version 3 for darwin when we can't find one
in the module. Add a FIXME with a comment about darwin's ld.

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

11 years agoIt's a very large constant. Say so.
Eric Christopher [Wed, 4 Sep 2013 00:58:10 +0000 (00:58 +0000)]
It's a very large constant. Say so.

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

11 years agoAdd r159136 back now that pr13124 has been fixed.
Rafael Espindola [Tue, 3 Sep 2013 23:34:36 +0000 (23:34 +0000)]
Add r159136 back now that pr13124 has been fixed.

Original message:
If a constant or a function has linkonce_odr linkage and unnamed_addr, mark
hidden. Being linkonce_odr guarantees that it is available in every dso that
needs it. Being a constant/function with unnamed_addr guarantees that the
copies don't have to be merged.

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

11 years ago[lit] Allow config files to pass arbitrary values to child configs.
Daniel Dunbar [Tue, 3 Sep 2013 23:32:55 +0000 (23:32 +0000)]
[lit] Allow config files to pass arbitrary values to child configs.

 - This aligns with how existing test suites end up wanting to use the local
   config files, conceptually it makes sense to consider them to be inherited.

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

11 years agoX86: Mark non-crashing report_fatal_errors() as such.
Jim Grosbach [Tue, 3 Sep 2013 23:02:00 +0000 (23:02 +0000)]
X86: Mark non-crashing report_fatal_errors() as such.

Previously, the clang crash handling code would kick in and give a crash
report for these, even though they're not that sort of error.

rdar://14882264

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

11 years ago[objc-arc] Remove dead code from previous commit.
Michael Gottesman [Tue, 3 Sep 2013 22:40:56 +0000 (22:40 +0000)]
[objc-arc] Remove dead code from previous commit.

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

11 years ago[objc-arc] Turn off the objc_retainBlock -> objc_retain optimization.
Michael Gottesman [Tue, 3 Sep 2013 22:40:54 +0000 (22:40 +0000)]
[objc-arc] Turn off the objc_retainBlock -> objc_retain optimization.

The reason that I am turning off this optimization is that there is an
additional case where a block can escape that has come up. Specifically, this
occurs when a block is used in a scope outside of its current scope.

This can cause a captured retainable object pointer whose life is preserved by
the objc_retainBlock to be deallocated before the block is invoked.

An example of the code needed to trigger the bug is:

----
\#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
  void (^somethingToDoLater)();

  {
    NSObject *obj = [NSObject new];

    somethingToDoLater = ^{
      [obj self]; // Crashes here
    };
  }

  NSLog(@"test.");

  somethingToDoLater();
  return 0;
}
----

In the next commit, I remove all the dead code that results from this.

Once I put in the fixing commit I will bring back the tests that I deleted in
this commit.

rdar://14802782.
rdar://14868830.

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

11 years ago[objc-arc] Move some block tests from basic.ll -> retain-block.ll and add some missin...
Michael Gottesman [Tue, 3 Sep 2013 22:40:50 +0000 (22:40 +0000)]
[objc-arc] Move some block tests from basic.ll -> retain-block.ll and add some missing CHECK-LABELS.

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

11 years agoAdd comments to the CFI instructions and reformat with clang-format. No functionality...
Bill Wendling [Tue, 3 Sep 2013 22:16:52 +0000 (22:16 +0000)]
Add comments to the CFI instructions and reformat with clang-format. No functionality change.

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

11 years agoFix copy and pasto with CMake files for unittest.
Eric Christopher [Tue, 3 Sep 2013 22:08:28 +0000 (22:08 +0000)]
Fix copy and pasto with CMake files for unittest.

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

11 years agoAdd a hashing routine that handles hashing types. Add a test for
Eric Christopher [Tue, 3 Sep 2013 21:57:57 +0000 (21:57 +0000)]
Add a hashing routine that handles hashing types. Add a test for
hashing the contents of DW_FORM_data1 on top of a type with attributes.

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

11 years agoSentences end with periods.
Eric Christopher [Tue, 3 Sep 2013 21:57:50 +0000 (21:57 +0000)]
Sentences end with periods.

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

11 years agoEnable late-vectorization by default.
Nadav Rotem [Tue, 3 Sep 2013 21:33:17 +0000 (21:33 +0000)]
Enable late-vectorization by default.
This patch changes the default setting for the LateVectorization flag that controls where the loop-vectorizer is ran.

Perf gains:
SingleSource/Benchmarks/Shootout/matrix -37.33%
MultiSource/Benchmarks/PAQ8p/paq8p  -22.83%
SingleSource/Benchmarks/Linpack/linpack-pc  -16.22%
SingleSource/Benchmarks/Shootout-C++/ary3 -15.16%
MultiSource/Benchmarks/TSVC/NodeSplitting-flt/NodeSplitting-flt -10.34%
MultiSource/Benchmarks/TSVC/NodeSplitting-dbl/NodeSplitting-dbl -7.12%

Regressions:
SingleSource/Benchmarks/Misc/lowercase  15.10%
MultiSource/Benchmarks/TSVC/Equivalencing-flt/Equivalencing-flt 13.18%
SingleSource/Benchmarks/Shootout-C++/matrix 8.27%
SingleSource/Benchmarks/CoyoteBench/lpbench 7.30%

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

11 years agoFix grammar
Matt Arsenault [Tue, 3 Sep 2013 21:05:51 +0000 (21:05 +0000)]
Fix grammar

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

11 years agoTeach InstCombineLoadCast about address spaces.
Matt Arsenault [Tue, 3 Sep 2013 21:05:48 +0000 (21:05 +0000)]
Teach InstCombineLoadCast about address spaces.

This is another one that doesn't matter much,
but uses the right GEP index types in the first
place.

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

11 years agoUse type form of getIntPtrType in alloca visitor.
Matt Arsenault [Tue, 3 Sep 2013 21:05:15 +0000 (21:05 +0000)]
Use type form of getIntPtrType in alloca visitor.

This doesn't actually matter, since alloca is always
0 address space, but this is more consistent.

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

11 years agoWIP: Refactor some code so that it can be called by more than just one method. No...
Bill Wendling [Tue, 3 Sep 2013 20:59:07 +0000 (20:59 +0000)]
WIP: Refactor some code so that it can be called by more than just one method. No functionality change.

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

11 years agoAlphabetize.
Eric Christopher [Tue, 3 Sep 2013 20:51:14 +0000 (20:51 +0000)]
Alphabetize.

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

11 years agoAdd a Python-like join function to merge a list of strings with a
Joerg Sonnenberger [Tue, 3 Sep 2013 20:43:54 +0000 (20:43 +0000)]
Add a Python-like join function to merge a list of strings with a
separator between each two elements.

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

11 years agoRevert "Revert "ARM: Improve pattern for isel mul of vector by scalar.""
Jim Grosbach [Tue, 3 Sep 2013 20:08:17 +0000 (20:08 +0000)]
Revert "Revert "ARM: Improve pattern for isel mul of vector by scalar.""

This reverts commit r189648.

Fixes for the previously failing clang-side arm_neon_intrinsics test
cases will be checked in separately.

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

11 years agoAdd the rest of the stock attributes to the attribute table.
Eric Christopher [Tue, 3 Sep 2013 20:00:20 +0000 (20:00 +0000)]
Add the rest of the stock attributes to the attribute table.

This won't affect the kinds of hashes we test for as we actually
do hashing based on form and attribute. Change the fission-hash
testcase one last time to handle DW_AT_comp_dir.

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

11 years agoTableGen: Enumerate Schedule Model too.
Vincent Lejeune [Tue, 3 Sep 2013 19:43:28 +0000 (19:43 +0000)]
TableGen: Enumerate Schedule Model too.

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

11 years agoIn this patch we are trying to do two things:
Yi Jiang [Tue, 3 Sep 2013 17:26:04 +0000 (17:26 +0000)]
In this patch we are trying to do two things:
1) If the width of vectorization list candidate is bigger than vector reg width, we will break it down to fit the vector reg.
2) We do not vectorize the width which is not power of two.

The performance result shows it will help some spec benchmarks. mesa improved 6.97% and ammp improved 1.54%.

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

11 years agoPrint string value for DT_RPATH and DT_RUNPATH.
Joerg Sonnenberger [Tue, 3 Sep 2013 17:13:53 +0000 (17:13 +0000)]
Print string value for DT_RPATH and DT_RUNPATH.

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

11 years ago[MC] Revert part of my previous change, I was a bit overzealous.
Joey Gouly [Tue, 3 Sep 2013 16:18:19 +0000 (16:18 +0000)]
[MC] Revert part of my previous change, I was a bit overzealous.

A change to test the previous commit will be coming soon.

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

11 years agoMigrate the DWARF_VERSION constant to 4. It largely needs to go away.
Eric Christopher [Tue, 3 Sep 2013 16:11:13 +0000 (16:11 +0000)]
Migrate the DWARF_VERSION constant to 4. It largely needs to go away.

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

11 years ago[SystemZ] Add support for TMHH, TMHL, TMLH and TMLL
Richard Sandiford [Tue, 3 Sep 2013 15:38:35 +0000 (15:38 +0000)]
[SystemZ] Add support for TMHH, TMHL, TMLH and TMLL

For now this just handles simple comparisons of an ANDed value with zero.
The CC value provides enough information to do any comparison for a
2-bit mask, and some nonzero comparisons with more populated masks,
but that's all future work.

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

11 years ago[MC] AvailableFeatures needs to be a uint64_t to match FeatureBits in MCSubtargetInfo.
Joey Gouly [Tue, 3 Sep 2013 15:03:36 +0000 (15:03 +0000)]
[MC] AvailableFeatures needs to be a uint64_t to match FeatureBits in MCSubtargetInfo.

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

11 years ago[msan] Fix handling of select with struct arguments.
Evgeniy Stepanov [Tue, 3 Sep 2013 13:05:29 +0000 (13:05 +0000)]
[msan] Fix handling of select with struct arguments.

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

11 years ago[msan] Fix select instrumentation.
Evgeniy Stepanov [Tue, 3 Sep 2013 10:04:11 +0000 (10:04 +0000)]
[msan] Fix select instrumentation.

Select condition shadow was being ignored resulting in false negatives.
This change OR-s sign-extended condition shadow into the result shadow.

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

11 years ago[mips][msa] Added IntrNoMem and removed Commutative from sub intrinsics.
Daniel Sanders [Tue, 3 Sep 2013 09:45:20 +0000 (09:45 +0000)]
[mips][msa] Added IntrNoMem and removed Commutative from sub intrinsics.

This changes the SelectionDAG nodes from ISD::INTRINSIC_W_CHAIN to
ISD::INTRINSIC_WO_CHAIN which enables easy lowering to equivalent SelectionDAG
nodes (e.g. __builtin_msa_sub_w -> ISD::SUB) in future patches since nodes
such as ISD::SUB do not have a chain.
It also corrects an obvious mistake, namely that the subtract intrinsics were
marked as being commutative.

As per a similar change in r189106
(http://llvm.org/viewvc/llvm-project?rev=189106&view=rev) there isn’t a new
testcase in this patch since the existing tests should test the intrinsics to
the same standard and the best I can do for a testcase would be a fragile
pass/maybe test of whether memory operations can (and do) cross the intrinsic.

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

11 years ago[mips][msa] Added IntrNoMem to the floating-point intrinsics.
Daniel Sanders [Tue, 3 Sep 2013 09:35:20 +0000 (09:35 +0000)]
[mips][msa] Added IntrNoMem to the floating-point intrinsics.

This changes the SelectionDAG nodes from ISD::INTRINSIC_W_CHAIN to
ISD::INTRINSIC_WO_CHAIN which enables easy lowering to equivalent SelectionDAG
nodes (e.g. __builtin_msa_fadd_w -> ISD::FADD) in future patches since nodes
such as ISD::FADD do not have a chain.

As per a similar change in r189106
(http://llvm.org/viewvc/llvm-project?rev=189106&view=rev) there isn’t a new
testcase in this patch since the existing tests should test the intrinsics to
the same standard and the best I can do for a testcase would be a fragile
pass/maybe test of whether memory operations can (and do) cross the intrinsic.

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

11 years ago[Sparc] Add support for soft long double (fp128).
Venkatraman Govindaraju [Tue, 3 Sep 2013 04:11:59 +0000 (04:11 +0000)]
[Sparc] Add support for soft long double (fp128).

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

11 years agoAdd hadSideEffects=0 to some instructions.
Craig Topper [Tue, 3 Sep 2013 03:56:17 +0000 (03:56 +0000)]
Add hadSideEffects=0 to some instructions.

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

11 years ago[Sparc] Implement spill and load for long double(f128) registers.
Venkatraman Govindaraju [Mon, 2 Sep 2013 18:32:45 +0000 (18:32 +0000)]
[Sparc] Implement spill and load for long double(f128) registers.

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

11 years agoARM: Default to the Swift CPU when targeting armv7s/thumbv7s.
Tilmann Scheller [Mon, 2 Sep 2013 17:09:01 +0000 (17:09 +0000)]
ARM: Default to the Swift CPU when targeting armv7s/thumbv7s.

Test cases adjusted accordingly.

This fixes rdar://14871821.

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

11 years agoRevert 189756 for now, it doesn't match what rdar://14871821 really wants.
Tilmann Scheller [Mon, 2 Sep 2013 15:48:17 +0000 (15:48 +0000)]
Revert 189756 for now, it doesn't match what rdar://14871821 really wants.

What we really want is to enable Swift by default for *v7s triples (and there already seems to be some logic which attempts to do that). In that case the iOS version doesn't matter.

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

11 years agoARM: Default to Swift when compiling for iOS 6 or later.
Tilmann Scheller [Mon, 2 Sep 2013 12:01:58 +0000 (12:01 +0000)]
ARM: Default to Swift when compiling for iOS 6 or later.

Test cases adjusted accordingly.

This fixes rdar://14871821.

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

11 years agoFileCheck-ize three tests of llvm/test/CodeGen/X86/h-register(s).
NAKAMURA Takumi [Mon, 2 Sep 2013 12:00:53 +0000 (12:00 +0000)]
FileCheck-ize three tests of llvm/test/CodeGen/X86/h-register(s).

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

11 years agollvm/test/CodeGen/X86: Update tests with -mattr=-bmi not to take BMI, corresponding...
NAKAMURA Takumi [Mon, 2 Sep 2013 12:00:46 +0000 (12:00 +0000)]
llvm/test/CodeGen/X86: Update tests with -mattr=-bmi not to take BMI, corresponding to Craig's r189742.

AMD Piledriver builder detected failures.

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

11 years ago[CMake] Add -O1 in debug builds with LLVM_USE_SANITIZER
Alexey Samsonov [Mon, 2 Sep 2013 09:15:01 +0000 (09:15 +0000)]
[CMake] Add -O1 in debug builds with LLVM_USE_SANITIZER

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

11 years agoCreate BEXTR instructions for (and ((sra or srl) x, imm), (2**size - 1)). Fixes PR17028.
Craig Topper [Mon, 2 Sep 2013 07:53:17 +0000 (07:53 +0000)]
Create BEXTR instructions for (and ((sra or srl) x, imm), (2**size - 1)). Fixes PR17028.

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

11 years agoAVX-512: updated the list of high-latency instructions.
Elena Demikhovsky [Mon, 2 Sep 2013 07:41:01 +0000 (07:41 +0000)]
AVX-512: updated the list of high-latency instructions.

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

11 years agoAdd a clang-format file so that the tool can automatically detect the
Chandler Carruth [Mon, 2 Sep 2013 07:19:04 +0000 (07:19 +0000)]
Add a clang-format file so that the tool can automatically detect the
correct style for the LLVM tree as well as projects checked out under
projects and tools.

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

11 years agoAVX-512: gather-scatter tests; added foldable instructions;
Elena Demikhovsky [Mon, 2 Sep 2013 07:12:29 +0000 (07:12 +0000)]
AVX-512: gather-scatter tests; added foldable instructions;
Specify GATHER/SCATTER as heavy instructions.

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

11 years agollvm interpreter: select, shuffle and insertelement instructions.
Elena Demikhovsky [Mon, 2 Sep 2013 06:40:09 +0000 (06:40 +0000)]
llvm interpreter: select, shuffle and insertelement instructions.
This patch implements vector support for  select instruction and adds specific vector instructions : shuffle and insertelement. (tests are also included)
and functions lle_X_memset, lle_X_memcpy added.

Done by Veselov, Yuri (mailto:Yuri.Veselov@intel.com)

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

11 years agoFix some rather confusing indentation and control flow in the errno
Chandler Carruth [Mon, 2 Sep 2013 05:55:10 +0000 (05:55 +0000)]
Fix some rather confusing indentation and control flow in the errno
printing routine. This is made harder to see due to the surprising
formatting, inconsistent brace usage, and repeated conditions that all
test the same thing.

The only "consequence" of this bug is re-assigning 'str' to an empty
string when computing the error string for an error number of 0 in the
event of a non-GNU strerror_r routine. So, nothing to see here other
than cleanup. It did help me find PR17055 in clang-format though.

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

11 years agoAdded std:: qualifier to find() invocation
Dmitri Gribenko [Mon, 2 Sep 2013 01:18:56 +0000 (01:18 +0000)]
Added std:: qualifier to find() invocation

Iterator of std::vector may be implemented as a raw pointer. In
this case ADL does not find the find() function in the std namespace.
For example, this is the case with STDCXX implementation of vector.

Patch by Konstantin Tokarev.

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

11 years agoNuke the hilariously out of date suggestion to unpack llvm-gcc 4.2 as
Chandler Carruth [Sun, 1 Sep 2013 23:42:27 +0000 (23:42 +0000)]
Nuke the hilariously out of date suggestion to unpack llvm-gcc 4.2 as
part of getting started with LLVM.

The LLVM getting started document is in woeful need of attention. I may
get to some of this, but some random notes for folks interested:

1) We need to separate the getting started steps for folks who are
   interested in the core LLVM libs and nothing else, folks interested
   in a nifty C++ toolchain and nothing else, and folks interested in
   both.
2) We should include documentation for both release archives, svn, and
   git in equal portion, and we should document all of the various
   repositories of interest: llvm, clang, clang-tools-extra,
   compiler-rt, lld, libcxx, test-suite.
3) We should document the CMake build. We should probably document the
   CMake build first, and give a fall-back set of docs for the Makefile
   build for the use cases where that is still the preferred solution.
   This would more closely match the use cases that folks in the open
   source community are likely to have, and would remove a point of
   discrepancy between Linux, Windows, and Mac instructions.
4) Probably a ton of other modernization stuff that I've not thought of
   here.

Anyways, if anyone at all is interested, please help clean up this
document. It is much needed.

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

11 years agoRevert r189704, which removed the guidance about not duplicating doc comments.
Chris Lattner [Sun, 1 Sep 2013 15:48:08 +0000 (15:48 +0000)]
Revert r189704, which removed the guidance about not duplicating doc comments.
This is under active discussion.

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

11 years agoAVX-512: Added GATHER and SCATTER instructions.
Elena Demikhovsky [Sun, 1 Sep 2013 14:24:41 +0000 (14:24 +0000)]
AVX-512: Added GATHER and SCATTER instructions.

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

11 years agoMove everything depending on Object/MachOFormat.h over to Support/MachO.h.
Charles Davis [Sun, 1 Sep 2013 04:28:48 +0000 (04:28 +0000)]
Move everything depending on Object/MachOFormat.h over to Support/MachO.h.

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

11 years agoMake sure we don't generate stubs for any of these functions because they
Reed Kotler [Sun, 1 Sep 2013 04:12:59 +0000 (04:12 +0000)]
Make sure we don't generate stubs for any of these functions because they
don't exist in libc. This is really not the right way to solve this problem;
but it's not clear to me at this time exactly what is the right way.
If we create stubs here, they will cause link errors because these functions
do not exist in libc.

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

11 years agoMark an unreachable code path with llvm_unreachable. Pacifies GCC.
Benjamin Kramer [Sat, 31 Aug 2013 21:20:04 +0000 (21:20 +0000)]
Mark an unreachable code path with llvm_unreachable. Pacifies GCC.

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

11 years agoFree PressureDiffs instead of leaking.
Benjamin Kramer [Sat, 31 Aug 2013 20:10:01 +0000 (20:10 +0000)]
Free PressureDiffs instead of leaking.

Found by valgrind.

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

11 years agoSimplifyLibCalls: When emitting an overloaded fp function check that it's available.
Benjamin Kramer [Sat, 31 Aug 2013 18:19:35 +0000 (18:19 +0000)]
SimplifyLibCalls: When emitting an overloaded fp function check that it's available.

The existing code missed some edge cases when e.g. we're going to emit sqrtf but
only the availability of sqrt was checked. This happens on odd platforms like
windows.

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

11 years agoFix my previous checkin to updatePressureDiffs.
Andrew Trick [Sat, 31 Aug 2013 05:17:58 +0000 (05:17 +0000)]
Fix my previous checkin to updatePressureDiffs.

There was one case that we could hit a DebugValue where I didn't think
to check. DebugValues are evil. No checkinable test case, sorry. It's
an obvious fix.

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

11 years ago[PowerPC] Fast-isel cleanup patch.
Bill Schmidt [Sat, 31 Aug 2013 02:33:40 +0000 (02:33 +0000)]
[PowerPC] Fast-isel cleanup patch.

Here are a few miscellaneous things to tidy up the PPC64 fast-isel
implementation.  I corrected a couple of commentary lapses, and added
documentation of future opportunities.  I also implemented
TargetMaterializeAlloca, which I somehow forgot when I split up the
original huge patch.

Finally, I decided to delete SelectCmp.  I hadn't previously hooked it
in to TargetSelectInstruction(), and when I did I realized it wasn't
serving any useful purpose.  This is only useful for compares that
don't feed a branch in the same block, and to handle that we would
have to have logic to interpret i1 as a condition register.  This
could probably be done, but would require Unseemly Hackery, and
honestly does not seem worth the hassle.

This ends the current patch series.

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

11 years ago[PowerPC] Add integer truncation support to fast-isel.
Bill Schmidt [Fri, 30 Aug 2013 23:31:33 +0000 (23:31 +0000)]
[PowerPC] Add integer truncation support to fast-isel.

This is the last substantive patch I'm planning for fast-isel in the
near future, adding fast selection of integer truncates.  There are
certainly more things that can be improved (many of which are called
out in FIXMEs), but for now we are catching most of the important
cases.

I'll document some of the remaining work in a cleanup patch shortly.

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

11 years agoCorrect partially defined variable
Bill Schmidt [Fri, 30 Aug 2013 23:25:30 +0000 (23:25 +0000)]
Correct partially defined variable

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

11 years agoRemove the suggestion to not duplicate comments in header and
Chris Lattner [Fri, 30 Aug 2013 23:06:20 +0000 (23:06 +0000)]
Remove the suggestion to not duplicate comments in header and
implementation files.  While doc generation systems don't need this,
humans do benefit from it.  Not everyone reads all code through doxygen.

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

11 years ago[PowerPC] Call support for fast-isel.
Bill Schmidt [Fri, 30 Aug 2013 22:18:55 +0000 (22:18 +0000)]
[PowerPC] Call support for fast-isel.

This patch adds fast-isel support for calls (but not intrinsic calls
or varargs calls).  It also removes a badly-formed assert.  There are
some new tests just for calls, and also for folding loads into
arguments on calls to avoid extra extends.

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

11 years agoBuild fix
Richard Mitton [Fri, 30 Aug 2013 21:32:42 +0000 (21:32 +0000)]
Build fix

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

11 years agoFixed a bug where diassembling an instruction that had a prefix would cause LLVM...
Richard Mitton [Fri, 30 Aug 2013 21:19:48 +0000 (21:19 +0000)]
Fixed a bug where diassembling an instruction that had a prefix would cause LLVM to identify a 1-byte instruction, but then upon querying it for that 1-byte instruction would cause an undefined opcode.

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

11 years agoCompulsive reformatting.
Bill Wendling [Fri, 30 Aug 2013 21:07:33 +0000 (21:07 +0000)]
Compulsive reformatting.

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

11 years ago[conf] Add config variable to disable crash related overrides.
Daniel Dunbar [Fri, 30 Aug 2013 20:39:21 +0000 (20:39 +0000)]
[conf] Add config variable to disable crash related overrides.

 - We do some nasty things w.r.t. installing or overriding signal handlers in
   order to improve our crash recovery support or interaction with crash
   reporting software, and those things are not necessarily appropriate when
   LLVM is being linked into a client application that has its own ideas about
   how to do things. This gives those clients a way to disable that handling at
   build time.

 - Currently, the code this guards is all Apple specific, but other platforms
   might have the same concerns so I went for a more generic configure
   name. Someone who is more familiar with library embedding on Windows can
   handle choosing which of the Windows/Signals.inc behaviors might make sense
   to go under this flag.

 - This also fixes the proper autoconf'ing of ENABLE_BACKTRACES. The code
   expects it to be undefined when disabled, but the autoconf check was just
   defining it to 0.

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

11 years agoFix a problem with dual mips16/mips32 mode. When the underlying processor
Reed Kotler [Fri, 30 Aug 2013 19:40:56 +0000 (19:40 +0000)]
Fix a problem with dual mips16/mips32 mode. When the underlying processor
has hard float, when you compile the mips32 code you have to make sure
that it knows to compile any mips32 routines as hard float. I need to clean
up the way mips16 hard float is specified but I need to first think through
all the details. Mips16 always has a form of soft float, the difference being
whether the underlying hardware has floating point. So it's not really
necessary to pass the -soft-float to llvm since soft-float is always true
for mips16 by virtue of the fact that it will not register floating point
registers. By using this fact, I can simplify the way this is all handled.

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

11 years agoUse LiveRangeQuery for instruction-level liveness queries.
Andrew Trick [Fri, 30 Aug 2013 17:58:49 +0000 (17:58 +0000)]
Use LiveRangeQuery for instruction-level liveness queries.

Remove redundant or bug-prone LiveInterval APIs.

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

11 years ago[PowerPC] Add handling for conversions to fast-isel.
Bill Schmidt [Fri, 30 Aug 2013 15:18:11 +0000 (15:18 +0000)]
[PowerPC] Add handling for conversions to fast-isel.

Yet another chunk of fast-isel code.  This one handles various
conversions involving floating-point.  (It also includes some
miscellaneous handling throughout the back end for LWA_32 and LWAX_32
that should have been part of the load-store patch.)

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

11 years agoChecking commit access; removed one space added in previous test checkin by Jim
Andrey Churbanov [Fri, 30 Aug 2013 14:40:24 +0000 (14:40 +0000)]
Checking commit access; removed one space added in previous test checkin by Jim

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

11 years agoInstCombine: Check for zero shift amounts before subtracting one causing integer...
Benjamin Kramer [Fri, 30 Aug 2013 14:35:35 +0000 (14:35 +0000)]
InstCombine: Check for zero shift amounts before subtracting one causing integer overflow.

PR17026. Also avoid undefined shifts and shift amounts larger than 64 bits
(those are always undef because we can't represent integer types that large).

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

11 years agoX86: Add a description of the Intel Atom Silvermont CPU.
Benjamin Kramer [Fri, 30 Aug 2013 14:05:32 +0000 (14:05 +0000)]
X86: Add a description of the Intel Atom Silvermont CPU.

Currently this is just the atom model with SSE4.2 enabled.

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

11 years agoRestore llvm-ranlib expansion in RUN-lines removed in r184019
Alexey Samsonov [Fri, 30 Aug 2013 12:53:22 +0000 (12:53 +0000)]
Restore llvm-ranlib expansion in RUN-lines removed in r184019

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

11 years agoFixup BZHI selection to remove an unneeded zero extension.
Craig Topper [Fri, 30 Aug 2013 07:16:16 +0000 (07:16 +0000)]
Fixup BZHI selection to remove an unneeded zero extension.

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

11 years agoRemove unused X86andn_flag node.
Craig Topper [Fri, 30 Aug 2013 07:06:26 +0000 (07:06 +0000)]
Remove unused X86andn_flag node.

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

11 years agoTeach X86 backend to create BMI2 BZHI instructions from (and X, (add (shl 1, Y),...
Craig Topper [Fri, 30 Aug 2013 06:52:21 +0000 (06:52 +0000)]
Teach X86 backend to create BMI2 BZHI instructions from (and X, (add (shl 1, Y), -1)). Fixes PR17038.

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

11 years agoRevert "ARM: Improve pattern for isel mul of vector by scalar."
Michael Gottesman [Fri, 30 Aug 2013 05:36:14 +0000 (05:36 +0000)]
Revert "ARM: Improve pattern for isel mul of vector by scalar."

This reverts commit r189619.

The commit was breaking the arm_neon_intrinsic test.

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

11 years agomi-sched: update PressureDiffs on-the-fly for liveness.
Andrew Trick [Fri, 30 Aug 2013 04:36:57 +0000 (04:36 +0000)]
mi-sched: update PressureDiffs on-the-fly for liveness.

This removes all expensive pressure tracking logic from the scheduling
critical path of node comparison.

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

11 years agoReplace LiveInterval::killedAt with isKilledAtInstr.
Andrew Trick [Fri, 30 Aug 2013 04:31:01 +0000 (04:31 +0000)]
Replace LiveInterval::killedAt with isKilledAtInstr.

Return true for LRGs that end at EarlyClobber or Register slots.

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

11 years ago mi-sched: improve the generic register pressure comparison.
Andrew Trick [Fri, 30 Aug 2013 04:27:29 +0000 (04:27 +0000)]
 mi-sched: improve the generic register pressure comparison.

Only compare pressure within the same set. When multiple sets are
affected, we prioritize the most constrained set.

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

11 years agomi-sched: Precompute a PressureDiff for each instruction, adjust for liveness later.
Andrew Trick [Fri, 30 Aug 2013 03:49:48 +0000 (03:49 +0000)]
mi-sched: Precompute a PressureDiff for each instruction, adjust for liveness later.

Created SUPressureDiffs array to hold the per node PDiff computed during DAG building.

Added a getUpwardPressureDelta API that will soon replace the old
one. Compute PressureDelta here from the precomputed PressureDiffs.

Updating for liveness will come next.

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

11 years ago[PowerPC] Handle selection of compare instructions in fast-isel.
Bill Schmidt [Fri, 30 Aug 2013 03:16:48 +0000 (03:16 +0000)]
[PowerPC] Handle selection of compare instructions in fast-isel.

Mostly trivial patch adding support for compares.  The meat of the
work was added with the branch support.

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

11 years agoRemove bogus debug statement. Sheesh.
Bill Schmidt [Fri, 30 Aug 2013 03:07:11 +0000 (03:07 +0000)]
Remove bogus debug statement.  Sheesh.

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

11 years ago[PowerPC] Miscellaneous fast-isel test cases.
Bill Schmidt [Fri, 30 Aug 2013 02:43:08 +0000 (02:43 +0000)]
[PowerPC] Miscellaneous fast-isel test cases.

Here are a few more tests that now pass after the recent fast-isel
commits.

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

11 years ago[PowerPC] Add loads, stores, and related things to fast-isel.
Bill Schmidt [Fri, 30 Aug 2013 02:29:45 +0000 (02:29 +0000)]
[PowerPC] Add loads, stores, and related things to fast-isel.

This is the next big chunk of fast-isel code.  The primary purpose is
to implement selection of loads and stores, but there is a lot of
drag-along to support this.  The common code to analyze addresses for
both loads and stores is substantial.  It's also necessary to add the
materialization code for global values.

Related to load-store processing is the code to fold loads into
integer extends, since otherwise we generate lots of redundant
instructions.  We also need to add some overrides to some FastEmit
routines to ensure we don't assign GPR 0 to a virtual register when
this would change the meaning of an instruction.

I added handling selection of a few binary arithmetic instructions, to
enable committing some test cases I wrote a while back.

Finally, ap couple of miscellaneous changes:
 * I cleaned up some poor style from a previous patch in
   PPCISelLowering.cpp, pointed out by David Blaikie.
 * I enlarged the Addr.Offset field to avoid sign problems with 32-bit
   offsets.

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

11 years agocomment typo
Andrew Trick [Fri, 30 Aug 2013 02:02:12 +0000 (02:02 +0000)]
comment typo

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

11 years agoRandom cleanup: No need to use a std::vector here, since createInternalizePass uses...
Bill Wendling [Fri, 30 Aug 2013 00:48:37 +0000 (00:48 +0000)]
Random cleanup: No need to use a std::vector here, since createInternalizePass uses an ArrayRef.

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

11 years agoDon't bother emitting the pubtypes section on darwin since there aren't
Eric Christopher [Fri, 30 Aug 2013 00:40:17 +0000 (00:40 +0000)]
Don't bother emitting the pubtypes section on darwin since there aren't
any maintained consumers of it on that platform.

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