oota-llvm.git
11 years agoHandle address spaces in TargetTransformInfo
Matt Arsenault [Wed, 28 Aug 2013 22:41:57 +0000 (22:41 +0000)]
Handle address spaces in TargetTransformInfo

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

11 years agoFix a typo and coding style of a previous commit. No functional change.
Juergen Ributzka [Wed, 28 Aug 2013 22:33:58 +0000 (22:33 +0000)]
Fix a typo and coding style of a previous commit. No functional change.

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

11 years agoFix typo.
Matt Arsenault [Wed, 28 Aug 2013 22:17:26 +0000 (22:17 +0000)]
Fix typo.

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

11 years ago[doxygen] Use correct variable names for external variable configuration and make...
Michael Gottesman [Wed, 28 Aug 2013 21:55:26 +0000 (21:55 +0000)]
[doxygen] Use correct variable names for external variable configuration and make EXTRA_SEARCH_MAPPINGS a "dumb" variable.

I do not think the massaging that I was doing for EXTRA_SEARCH_MAPPINGS was
truly necessary.

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

11 years agoFix name matching to work on windows.
Rafael Espindola [Wed, 28 Aug 2013 21:00:03 +0000 (21:00 +0000)]
Fix name matching to work on windows.

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

11 years agoPeriod.
David Blaikie [Wed, 28 Aug 2013 20:45:45 +0000 (20:45 +0000)]
Period.

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

11 years agor189495: Pull out some debug logic into a function for legibility
David Blaikie [Wed, 28 Aug 2013 20:42:43 +0000 (20:42 +0000)]
r189495: Pull out some debug logic into a function for legibility

Code review feedback from Eric Christopher.

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

11 years ago[doxygen] Added support for doxygen external search.
Michael Gottesman [Wed, 28 Aug 2013 20:28:35 +0000 (20:28 +0000)]
[doxygen] Added support for doxygen external search.

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

11 years ago[cmake] Created an aggregate doxygen target for generating doxygen documentation...
Michael Gottesman [Wed, 28 Aug 2013 20:28:32 +0000 (20:28 +0000)]
[cmake] Created an aggregate doxygen target for generating doxygen documentation for llvm/all subprojects. Renamed llvm's doxygen generation command to doxygen-llvm.

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

11 years agoOption parsing: support case-insensitive option matching.
Rui Ueyama [Wed, 28 Aug 2013 20:04:31 +0000 (20:04 +0000)]
Option parsing: support case-insensitive option matching.

Re-submitting r189416 with fix for Windows build on where strcasecmp is not defined.

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

11 years agoDisable unrolling in the loop vectorizer when disabled in the pass manager
Hal Finkel [Wed, 28 Aug 2013 18:33:10 +0000 (18:33 +0000)]
Disable unrolling in the loop vectorizer when disabled in the pass manager

When unrolling is disabled in the pass manager, the loop vectorizer should also
not unroll loops. This will allow the -fno-unroll-loops option in Clang to
behave as expected (even for vectorizable loops). The loop vectorizer's
-force-vector-unroll option will (continue to) override the pass-manager
setting (including -force-vector-unroll=0 to force use of the internal
auto-selection logic).

In order to test this, I added a flag to opt (-disable-loop-unrolling) to force
disable unrolling through opt (the analog of -fno-unroll-loops in Clang). Also,
this fixes a small bug in opt where the loop vectorizer was enabled only after
the pass manager populated the queue of passes (the global_alias.ll test needed
a slight update to the RUN line as a result of this fix).

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

11 years agoThe integrated darwin assembler can hang in an infinite loop (or get an assert
Kevin Enderby [Wed, 28 Aug 2013 17:50:59 +0000 (17:50 +0000)]
The integrated darwin assembler can hang in an infinite loop (or get an assert
with a debug build) with this buggy .indirect_symbol directive usage:

% cat test.s
x: .indirect_symbol _y

The assertion is because it is trying to get the symbol index for the
symbol _y when it is writing out the indirect symbol table. This line of
code in MachObjectWriter::WriteObject() :

        Write32(Asm.getSymbolData(*it->Symbol).getIndex());

And while there is a symbol _y it does not have any getSymbolData set which
is only done in MachObjectWriter::BindIndirectSymbols() for pointer sections
or stub sections.  I added a check and an error in there to catch this in case
something slips through.

But to get a better error the parser should detect when a .indirect_symbol
directive is used and it is not in a pointer section or stub section.  To make
that work I moved the handling of the indirect symbol out of the target
independent AsmParser code into the DarwinAsmParser code that can check
for the proper Mach-O section types.

rdar://14825505

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

11 years agoPR16995: DebugInfo: Don't overwrite existing member lists when adding template arguments
David Blaikie [Wed, 28 Aug 2013 17:28:16 +0000 (17:28 +0000)]
PR16995: DebugInfo: Don't overwrite existing member lists when adding template arguments

With the added debug assertions this fix is covered by existing Clang
tests. (& found some other issues, also fixed)

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

11 years agocmake: Prevent semicolon separated lists in llvm-config (PR17020)
Hans Wennborg [Wed, 28 Aug 2013 17:04:06 +0000 (17:04 +0000)]
cmake: Prevent semicolon separated lists in llvm-config (PR17020)

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

11 years ago[ARMv8]
Joey Gouly [Wed, 28 Aug 2013 16:39:20 +0000 (16:39 +0000)]
[ARMv8]
Fix a few things in one swoop.

# Add some negative tests.
# Fix some formatting issues.
# Add some missing IsThumb / ARMv8
# Fix some outs / ins mistakes.

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

11 years agoAdd a minimal implementation of ranlib.
Rafael Espindola [Wed, 28 Aug 2013 16:22:16 +0000 (16:22 +0000)]
Add a minimal implementation of ranlib.

This is just enough to get "llvm-ranlib foo.a" working and tested. Making
llvm-ranlib a symbolic link to llvm-ar doesn't work so well with llvm's option
parsing, but ar's option parsing is mostly custom anyway.

This patch also removes the -X32_64 option. Looks like it was just added in
r10297 as part of implementing the current command line parsing. I can add it
back (with a test) if someone really has AIX portability problems without it.

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

11 years agoARM: Use "dmb sy" for barriers on M-class CPUs
Tim Northover [Wed, 28 Aug 2013 14:39:19 +0000 (14:39 +0000)]
ARM: Use "dmb sy" for barriers on M-class CPUs

The usual default of "dmb ish" (inner-shareable) isn't even a valid instruction
on v6M or v7M (well, it does the same thing but software is strongly
discouraged from using it) so we should emit a full-system barrier there.

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

11 years ago[ARMv8] Add a missing IsThumb to t2LDAEXD.
Joey Gouly [Wed, 28 Aug 2013 14:33:35 +0000 (14:33 +0000)]
[ARMv8] Add a missing IsThumb to t2LDAEXD.

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

11 years agoARM: remove unused v(add|sub)hn and vqdml[as]l intrinsics.
Tim Northover [Wed, 28 Aug 2013 14:33:33 +0000 (14:33 +0000)]
ARM: remove unused v(add|sub)hn and vqdml[as]l intrinsics.

Clang is now generating cleaner IR, so this removes the old variants which
should be completely unused.

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

11 years agoARM: add patterns for vqdmlal with separate vqdmull and vqadds
Tim Northover [Wed, 28 Aug 2013 12:15:16 +0000 (12:15 +0000)]
ARM: add patterns for vqdmlal with separate vqdmull and vqadds

The vqdmlal and vqdmlls instructions are really just a fused pair consisting of
a vqdmull.sN and a vqadd.sN. This adds patterns to LLVM so that we can switch
Clang's CodeGen over to generating these instead of the special vqdmlal
intrinsics.

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

11 years ago[mips][msa] Added bnz.df, bnz.v, bz.df, and bz.v
Daniel Sanders [Wed, 28 Aug 2013 12:14:50 +0000 (12:14 +0000)]
[mips][msa] Added bnz.df, bnz.v, bz.df, and bz.v

These intrinsics are legalized to V(ALL|ANY)_(NON)?ZERO nodes,
are matched as SN?Z_[BHWDV]_PSEUDO pseudo's, and emitted as
a branch/mov sequence to evaluate to 0 or 1.

Note: The resulting code is sub-optimal since it doesnt seem to be possible
to feed the result of an intrinsic directly into a brcond. At the moment
it uses (SETCC (VALL_ZERO $ws), 0, SETEQ) and similar which unnecessarily
evaluates the boolean twice.

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

11 years ago[mips][msa] Added load/store intrinsics.
Daniel Sanders [Wed, 28 Aug 2013 12:04:29 +0000 (12:04 +0000)]
[mips][msa] Added load/store intrinsics.

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

11 years ago80 cols
Alexey Samsonov [Wed, 28 Aug 2013 11:25:12 +0000 (11:25 +0000)]
80 cols

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

11 years agoAVX-512: added SQRT, VRSQRT14, VCOMISS, VUCOMISS, VRCP14, VPABS
Elena Demikhovsky [Wed, 28 Aug 2013 11:21:58 +0000 (11:21 +0000)]
AVX-512: added SQRT, VRSQRT14, VCOMISS, VUCOMISS, VRCP14, VPABS

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

11 years ago[mips][msa] Added move.v
Daniel Sanders [Wed, 28 Aug 2013 10:44:47 +0000 (10:44 +0000)]
[mips][msa] Added move.v

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

11 years ago[SystemZ] Add support for TMHH, TMHL, TMLH and TMLL
Richard Sandiford [Wed, 28 Aug 2013 10:31:43 +0000 (10:31 +0000)]
[SystemZ] Add support for TMHH, TMHL, TMLH and TMLL

For now 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@189469 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[mips][msa] Added cfcmsa, and ctcmsa
Daniel Sanders [Wed, 28 Aug 2013 10:26:24 +0000 (10:26 +0000)]
[mips][msa] Added cfcmsa, and ctcmsa

The MSA control registers have been added as reserved registers,
and are only used via ISD::Copy(To|From)Reg. The intrinsics are lowered
into these nodes.

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

11 years ago[mips][msa] Added f[cs]af, f[cs]or, f[cs]ueq, f[cs]ul[et], f[cs]une, fsun, ftrunc_...
Daniel Sanders [Wed, 28 Aug 2013 10:12:09 +0000 (10:12 +0000)]
[mips][msa] Added f[cs]af, f[cs]or, f[cs]ueq, f[cs]ul[et], f[cs]une, fsun, ftrunc_[su], hadd_[su], hsub_[su], sr[al]r, sr[al]ri

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

11 years ago[mips][msa] Summarize tests
Daniel Sanders [Wed, 28 Aug 2013 10:02:29 +0000 (10:02 +0000)]
[mips][msa] Summarize tests

Adds a comment to the start of each test summarizing the area the test covers.

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

11 years ago[SystemZ] Extend memcmp support to all constant lengths
Richard Sandiford [Wed, 28 Aug 2013 09:01:51 +0000 (09:01 +0000)]
[SystemZ] Extend memcmp support to all constant lengths

This uses the infrastructure added for memcpy and memmove in r189331.

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

11 years agoFix use of uninitialized value added in r189400 (found by MemorySanitizer)
Alexey Samsonov [Wed, 28 Aug 2013 08:30:47 +0000 (08:30 +0000)]
Fix use of uninitialized value added in r189400 (found by MemorySanitizer)

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

11 years agoAdd missing include
Craig Topper [Wed, 28 Aug 2013 07:03:02 +0000 (07:03 +0000)]
Add missing include

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

11 years agoRevert r189442 "Change default # of digits for APFloat::toString"
Ted Kremenek [Wed, 28 Aug 2013 06:21:46 +0000 (06:21 +0000)]
Revert r189442 "Change default # of digits for APFloat::toString"

This is breaking numerous Clang tests on the buildbot.

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

11 years agoChange default # of digits for APFloat::toString
Eli Friedman [Wed, 28 Aug 2013 05:23:51 +0000 (05:23 +0000)]
Change default # of digits for APFloat::toString

The previous default was almost, but not quite enough digits to
represent a floating-point value in a manner which preserves the
representation when it's read back in.  The larger default is much
less confusing.

I spent some time looking into printing exactly the right number of
digits if a precision isn't specified, but it's kind of complicated,
and I'm not really sure I understand what APFloat::toString is supposed
to output for FormatPrecision != 0 (or maybe the current API specification
is just silly, not sure which).  I have a WIP patch if anyone is interested.

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

11 years agoRemove support for the .debug_inlined section. No known software
Eric Christopher [Wed, 28 Aug 2013 04:04:28 +0000 (04:04 +0000)]
Remove support for the .debug_inlined section. No known software
in use supports it.

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

11 years agoX86JITInfo.cpp: Apply x64 version of X86CompilationCallback() to Cygwin64.
NAKAMURA Takumi [Wed, 28 Aug 2013 03:04:09 +0000 (03:04 +0000)]
X86JITInfo.cpp: Apply x64 version of X86CompilationCallback() to Cygwin64.

For now, (defined(X86_64_JIT) && defined(__CYGWIN__)) satisfies Cygwin64.

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

11 years agoX86Subtarget.h: Recognize x86_64-cygwin.
NAKAMURA Takumi [Wed, 28 Aug 2013 03:04:02 +0000 (03:04 +0000)]
X86Subtarget.h: Recognize x86_64-cygwin.

In the LLVM side, x86_64-cygwin is almost as same as x86_64-mingw32.

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

11 years agocmake: Add msbuild integration to the install
Hans Wennborg [Wed, 28 Aug 2013 01:19:26 +0000 (01:19 +0000)]
cmake: Add msbuild integration to the install

This adds the msbuild integration files to the install, provides batch scripts
for (un)installing it in a convenient way, and hooks up the nsis installer to
run those scripts.

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

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

11 years ago[BumpPtrAllocator] Move DefaultSlabAllocator to a member of BumpPtrAllocator, instead...
Argyrios Kyrtzidis [Wed, 28 Aug 2013 01:02:21 +0000 (01:02 +0000)]
[BumpPtrAllocator] Move DefaultSlabAllocator to a member of BumpPtrAllocator, instead of a static variable.

The problem with having DefaultSlabAllocator being a global static is that it is undefined if BumpPtrAllocator
will be usable during global initialization because it is not guaranteed that DefaultSlabAllocator will be
initialized before BumpPtrAllocator is created and used.

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

11 years ago[mips] Use ptr_rc to simplify definitions of base+index load/store instructions.
Akira Hatanaka [Wed, 28 Aug 2013 00:55:15 +0000 (00:55 +0000)]
[mips] Use ptr_rc to simplify definitions of base+index load/store instructions.
Also, fix predicates.

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

11 years ago[mips] Clean up definitions of move word from/to coprocessor instructions.
Akira Hatanaka [Wed, 28 Aug 2013 00:42:50 +0000 (00:42 +0000)]
[mips] Clean up definitions of move word from/to coprocessor instructions.

No functionality change.

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

11 years ago[mips] Set isAllocatable and CoveredBySubRegs.
Akira Hatanaka [Wed, 28 Aug 2013 00:34:17 +0000 (00:34 +0000)]
[mips] Set isAllocatable and CoveredBySubRegs.

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

11 years agoAdd a TODO here.
Eric Christopher [Wed, 28 Aug 2013 00:13:08 +0000 (00:13 +0000)]
Add a TODO here.

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

11 years agoAdd support for DW_FORM_dataN and DW_FORM_udata to the DIE hashing
Eric Christopher [Wed, 28 Aug 2013 00:10:38 +0000 (00:10 +0000)]
Add support for DW_FORM_dataN and DW_FORM_udata to the DIE hashing
algorithm. Update the split dwarf hashing testcase accordingly - this
should be the last time that the hash of an empty file changes.

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

11 years agoRevert "Option parsing: support case-insensitive option matching." as it broke Window...
Rui Ueyama [Wed, 28 Aug 2013 00:02:06 +0000 (00:02 +0000)]
Revert "Option parsing: support case-insensitive option matching." as it broke Windows buildbot.

This reverts r189416.

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

11 years agoUse DW_FORM_sdata for signed constant values and udata on occasion
Eric Christopher [Tue, 27 Aug 2013 23:49:04 +0000 (23:49 +0000)]
Use DW_FORM_sdata for signed constant values and udata on occasion
when we can. Migrate from using blocks when we're adding just a
single attribute and floating point values are an unsigned, not signed,
bag of bits.

Update all test cases accordingly.

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

11 years agoMove some debug testcases to the debug info directory.
Eric Christopher [Tue, 27 Aug 2013 23:48:57 +0000 (23:48 +0000)]
Move some debug testcases to the debug info directory.

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

11 years agoOption parsing: support case-insensitive option matching.
Rui Ueyama [Tue, 27 Aug 2013 23:47:01 +0000 (23:47 +0000)]
Option parsing: support case-insensitive option matching.

Link.exe's command line options are case-insensitive. This patch
adds a new attribute to OptTable to let the option parser to compare
options, ignoring case.

Command lines are generally case-insensitive on Windows. CL.exe is an
exception. So this new attribute should be useful for other commands
running on Windows.

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

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

11 years ago[CMake] Put back the add_llvm_external_project() calls for specific projects.
Argyrios Kyrtzidis [Tue, 27 Aug 2013 23:27:56 +0000 (23:27 +0000)]
[CMake] Put back the add_llvm_external_project() calls for specific projects.

This allows setting-up the LLVM_EXTERNAL_* CMake variables that some people are using,
e.g. to set the source directory of the project in a different place.

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

11 years agoAdd xml files for msbuild integration
Reid Kleckner [Tue, 27 Aug 2013 23:07:17 +0000 (23:07 +0000)]
Add xml files for msbuild integration

These files are intended to live in the msbuild toolset directory, which
is somewhere like:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\
  v4.0\Platforms\Win32\PlatformToolsets\llvm

More work is needed to install them as part of the NSIS installer.

Patch by Warren Hunt!

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

11 years agoDIBuilder: take an optional StringRef to pass in unique identifier.
Manman Ren [Tue, 27 Aug 2013 23:06:40 +0000 (23:06 +0000)]
DIBuilder: take an optional StringRef to pass in unique identifier.

createClassType, createStructType, createUnionType, createEnumerationType,
and createForwardDecl will take an optional StringRef to pass in
the unique identifier.

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

11 years agoDataFlowSanitizer: Implement trampolines for function pointers passed to custom funct...
Peter Collingbourne [Tue, 27 Aug 2013 22:09:06 +0000 (22:09 +0000)]
DataFlowSanitizer: Implement trampolines for function pointers passed to custom functions.

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

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

11 years ago[ms-inline asm] Support offsets after segment registers
David Majnemer [Tue, 27 Aug 2013 21:56:17 +0000 (21:56 +0000)]
[ms-inline asm] Support offsets after segment registers

Summary: MASM let's you do stuff like 'MOV FS:20, EAX' and 'MOV EAX, FS:20'

Reviewers: craig.topper, rnk

Reviewed By: rnk

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

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

11 years agoGiven target assembler parsers a chance to handle variant expressions
Joerg Sonnenberger [Tue, 27 Aug 2013 20:23:19 +0000 (20:23 +0000)]
Given target assembler parsers a chance to handle variant expressions
first. Use this to turn the PPC modifiers into PPC specific expressions,
allowing them to work on constants.

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

11 years agoChanged comment
Jack Carter [Tue, 27 Aug 2013 19:45:28 +0000 (19:45 +0000)]
Changed comment

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

11 years agoTranslate ENABLE_CLANG_{ARCMT,REWRITER,STATIC_ANALYZER} when generating
Roman Divacky [Tue, 27 Aug 2013 19:25:01 +0000 (19:25 +0000)]
Translate ENABLE_CLANG_{ARCMT,REWRITER,STATIC_ANALYZER} when generating
lit.site.cfg.

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

11 years agoRefactor 'vectorizeLoop' no functionality change.
Nadav Rotem [Tue, 27 Aug 2013 18:52:47 +0000 (18:52 +0000)]
Refactor 'vectorizeLoop' no functionality change.

This patch merges LoopVectorize of InnerLoopVectorizer and InnerLoopUnroller by adding checks for VF=1. This helps in erasing the Unroller code that is almost identical to the InnerLoopVectorizer code.

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

11 years ago[ARMv8] Add MC support for the new load/store acquire/release instructions.
Joey Gouly [Tue, 27 Aug 2013 17:38:16 +0000 (17:38 +0000)]
[ARMv8] Add MC support for the new load/store acquire/release instructions.

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

11 years ago Revert 189297, the original commit message is following.
Shuxin Yang [Tue, 27 Aug 2013 17:15:54 +0000 (17:15 +0000)]
  Revert 189297, the original commit message is following.

----
  Add new API lto_codegen_compile_parallel().

  This API is proposed by Nick Kledzik. The semantic is:

  --------------------------------------------------------------------------
   Generate code for merged module into an array of native object files. On
   success returns a pointer to an array of NativeObjectFile.  The count
   parameter returns the number of elements in the array.  Each element is
   a pointer/length for a generated mach-o/ELF buffer.  The buffer is owned
   by the lto_code_gen_t and will be freed when lto_codegen_dispose() is called,
   or lto_codegen_compile() is called again. On failure, returns NULL
   (check lto_get_error_message() for details).

   extern const struct  NativeObjectFile*
   lto_codegen_compile_parallel(lto_code_gen_t cg, size_t *count);
  ---------------------------------------------------------------------------

  This API is currently only called on OSX platform. Linux or other Unixes
using GNU gold are not supposed to call this function, because on these systems,
object files are fed back to linker via disk file instead of memory buffer.

  In this commit, lto_codegen_compile_parallel() simply calls
lto_codegen_compile() to return a single object file. In the near future,
this function is the entry point for compilation with partition. Linker can
blindly call this function even if partition is turned off; in this case,
compiler will return only one object file.

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

11 years agoAVX-512: added conversion instructions.
Elena Demikhovsky [Tue, 27 Aug 2013 13:54:04 +0000 (13:54 +0000)]
AVX-512: added conversion instructions.

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

11 years agoDAGCombiner: make sure or/shl/srl really has zero high bits before forming bswap
Tim Northover [Tue, 27 Aug 2013 13:46:45 +0000 (13:46 +0000)]
DAGCombiner: make sure or/shl/srl really has zero high bits before forming bswap

We want to convert code like (or (srl N, 8), (shl N, 8)) into (srl (bswap N),
const), but this is only valid if the bits above 16 on the source pattern are
0, the checks we were doing on this were slightly wrong before.

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

11 years ago[ARMv8] Add some negative tests for the recent VFP/NEON instructions.
Joey Gouly [Tue, 27 Aug 2013 11:24:16 +0000 (11:24 +0000)]
[ARMv8] Add some negative tests for the recent VFP/NEON instructions.

Fix two issues I found while writing these tests.

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

11 years agoAdd an assertion to the fixed-size allocator to ensure that we don't request
Joey Gouly [Tue, 27 Aug 2013 11:20:13 +0000 (11:20 +0000)]
Add an assertion to the fixed-size allocator to ensure that we don't request
an allocation that is greater than what we will actually allocate.

Patch by Artyom Skrobov!

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

11 years agoARM: add natural patterns for vaddhl and vsubhl.
Tim Northover [Tue, 27 Aug 2013 10:31:36 +0000 (10:31 +0000)]
ARM: add natural patterns for vaddhl and vsubhl.

These instructions aren't particularly complicated and it's well worth having
patterns for some reasonably useful LLVM IR that will match them. Soon we
should be able to switch Clang over to producing this natural version.

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

11 years agoR600/SI: Enable local-memory-two-objects lit test
Michel Danzer [Tue, 27 Aug 2013 10:28:26 +0000 (10:28 +0000)]
R600/SI: Enable local-memory-two-objects lit test

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189334 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[mips][msa] Added tests for and.v, bmnz.v, bmz.v, bsel.v, nor.v, or.v, xor.v when...
Daniel Sanders [Tue, 27 Aug 2013 10:16:17 +0000 (10:16 +0000)]
[mips][msa] Added tests for and.v, bmnz.v, bmz.v, bsel.v, nor.v, or.v, xor.v when non-byte vectors are used.

Note that all of these tests use ld.b and st.b for the loads and stores
regardless of the data size. This is because the definition of bitcast is
equivalent to a store/load sequence and DAG combiner accordingly folds bitcasts
to/from v16i8 into the load/store nodes to product load/store nodes with
type v16i8.

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

11 years ago[mips][msa] Added spill/reload support
Daniel Sanders [Tue, 27 Aug 2013 10:04:21 +0000 (10:04 +0000)]
[mips][msa] Added spill/reload support

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

11 years ago[SystemZ] Extend memcpy and memset support to all constant lengths
Richard Sandiford [Tue, 27 Aug 2013 09:54:29 +0000 (09:54 +0000)]
[SystemZ] Extend memcpy and memset support to all constant lengths

Lengths up to a certain threshold (currently 6 * 256) use a series of MVCs.
Lengths above that threshold use a loop to handle X*256 bytes followed
by a single MVC to handle the excess (if any).  This loop will also be
needed in future when support for variable lengths is added.

Because the same tablegen classes are used to define MVC and CLC,
the patch also has the side-effect of defining a pseudo loop instruction
for CLC.  That instruction isn't used yet (and wouldn't be handled correctly
if it were).  I'm planning to use it soon though.

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

11 years ago[mips][msa] Added bitconverts for vector types for big and little-endian
Daniel Sanders [Tue, 27 Aug 2013 09:40:30 +0000 (09:40 +0000)]
[mips][msa] Added bitconverts for vector types for big and little-endian

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

11 years agoAdd support for DebugFission to DWARF parser
Alexey Samsonov [Tue, 27 Aug 2013 09:20:22 +0000 (09:20 +0000)]
Add support for DebugFission to DWARF parser

Summary:
1) Make llvm-symbolizer properly symbolize
files with split debug info (by using stanalone .dwo files).
2) Make DWARFCompileUnit parse and store corresponding .dwo file,
if necessary.
3) Make bits of DWARF parsing more CompileUnit-oriented.

Reviewers: echristo

Reviewed By: echristo

CC: bkramer, llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1164

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

11 years agoAVX-512: Added FMA instructions.
Elena Demikhovsky [Tue, 27 Aug 2013 08:39:25 +0000 (08:39 +0000)]
AVX-512: Added FMA instructions.

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

11 years agoFix the build issue under ia64. Close bug #5715
Sylvestre Ledru [Tue, 27 Aug 2013 06:49:46 +0000 (06:49 +0000)]
Fix the build issue under ia64. Close bug #5715

Thanks to Luca Falavigna for the help and most of the patch.

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

11 years agoRevert "Fix the build broken by r189315." and "Move everything depending on Object...
Charles Davis [Tue, 27 Aug 2013 05:38:30 +0000 (05:38 +0000)]
Revert "Fix the build broken by r189315." and "Move everything depending on Object/MachOFormat.h over to Support/MachO.h."

This reverts commits r189319 and r189315. r189315 broke some tests on what I
believe are big-endian platforms.

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

11 years agoFix the build broken by r189315.
David Blaikie [Tue, 27 Aug 2013 05:16:07 +0000 (05:16 +0000)]
Fix the build broken by r189315.

(this triggered Clang's -Wsometimes-uninitialized on the default path
through the switch)

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

11 years agoMove everything depending on Object/MachOFormat.h over to Support/MachO.h.
Charles Davis [Tue, 27 Aug 2013 05:00:43 +0000 (05:00 +0000)]
Move everything depending on Object/MachOFormat.h over to Support/MachO.h.

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

11 years agoSupport/MachO: Add a bunch of defines.
Charles Davis [Tue, 27 Aug 2013 05:00:13 +0000 (05:00 +0000)]
Support/MachO: Add a bunch of defines.

Right now we have two headers for the Mach-O format. I'd like to get rid
of one. Since the other object formats are all in Support, I chose to
keep the Mach-O header in Support, and discard the other one.

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

11 years agoFixed typo.
Michael Gottesman [Tue, 27 Aug 2013 04:43:03 +0000 (04:43 +0000)]
Fixed typo.

Noticed by Stephen Checkoway <s@pahtak.org>.

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

11 years agoFix wrong code offset for unwind code SET_FPREG.
Kai Nacke [Tue, 27 Aug 2013 04:16:16 +0000 (04:16 +0000)]
Fix wrong code offset for unwind code SET_FPREG.

The code offset for unwind code SET_FPREG is wrong because it is set
to constant 0. The fix is to do the same as for the other unwind
codes: emit a label and later the absolute difference between the
label and the begin of the prologue.
Also enables the failing test case MC/COFF/seh.s

Reviewed by Jim Grosbach, Charles Davis and Nico Rieck.

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

11 years agoAdd derived from source.
Eric Christopher [Tue, 27 Aug 2013 00:46:28 +0000 (00:46 +0000)]
Add derived from source.

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

11 years agoAdd a testcase to ensure that the pubnames section uses an offset
Eric Christopher [Tue, 27 Aug 2013 00:36:19 +0000 (00:36 +0000)]
Add a testcase to ensure that the pubnames section uses an offset
off of the debug_info section even when split dwarf is enabled.

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

11 years agoRemove an over-zealous assertion. A pointer type could be illegal if the target...
Owen Anderson [Tue, 27 Aug 2013 00:28:23 +0000 (00:28 +0000)]
Remove an over-zealous assertion.  A pointer type could be illegal if the target is prepared to custom-legalize pointer operands.  This assertion was evaluated before the target would have a chance to do so, making it impossible.

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

11 years ago Add new API lto_codegen_compile_parallel().
Shuxin Yang [Tue, 27 Aug 2013 00:03:23 +0000 (00:03 +0000)]
  Add new API lto_codegen_compile_parallel().

  This API is proposed by Nick Kledzik. The semantic is:

  --------------------------------------------------------------------------
   Generate code for merged module into an array of native object files. On
   success returns a pointer to an array of NativeObjectFile.  The count
   parameter returns the number of elements in the array.  Each element is
   a pointer/length for a generated mach-o/ELF buffer.  The buffer is owned
   by the lto_code_gen_t and will be freed when lto_codegen_dispose() is called,
   or lto_codegen_compile() is called again. On failure, returns NULL
   (check lto_get_error_message() for details).

   extern const struct  NativeObjectFile*
   lto_codegen_compile_parallel(lto_code_gen_t cg, size_t *count);
  ---------------------------------------------------------------------------

  This API is currently only called on OSX platform. Linux or other Unixes
using GNU gold are not supposed to call this function, because on these systems,
object files are fed back to linker via disk file instead of memory buffer.

  In this commit, lto_codegen_compile_parallel() simply calls
lto_codegen_compile() to return a single object file. In the near future,
this function is the entry point for compilation with partition. Linker can
blindly call this function even if partition is turned off; in this case,
compiler will return only one object file.

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

11 years agoFormatting.
Eric Christopher [Mon, 26 Aug 2013 23:58:22 +0000 (23:58 +0000)]
Formatting.

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

11 years agoMake the lifetime of the DICompileUnit we're constructing from the
Eric Christopher [Mon, 26 Aug 2013 23:57:03 +0000 (23:57 +0000)]
Make the lifetime of the DICompileUnit we're constructing from the
MDNode more clear as just for a single argument.

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

11 years agoHave the skeleton compile unit construction method take the CU it
Eric Christopher [Mon, 26 Aug 2013 23:50:43 +0000 (23:50 +0000)]
Have the skeleton compile unit construction method take the CU it
is constructing from as an input and keep the same unique identifier.
We can use this to connect items which must stay in the .o file
(e.g. pubnames and pubtypes) to the skeleton cu rather than having
duplicate unique numbers for the sections and needing to do lookups
based on MDNode.

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

11 years agoRemove duplicate set of CompilationDir.
Eric Christopher [Mon, 26 Aug 2013 23:50:40 +0000 (23:50 +0000)]
Remove duplicate set of CompilationDir.

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

11 years agoRemove the language parameter and variable from the compile unit. We
Eric Christopher [Mon, 26 Aug 2013 23:50:38 +0000 (23:50 +0000)]
Remove the language parameter and variable from the compile unit. We
can get it via the MDNode that's passed in. Save that instead.

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

11 years agoFix lint assert on integer vector division
Matt Arsenault [Mon, 26 Aug 2013 23:29:33 +0000 (23:29 +0000)]
Fix lint assert on integer vector division

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

11 years agoTreat the pubtypes section similarly to the pubnames section and emit
Eric Christopher [Mon, 26 Aug 2013 23:24:35 +0000 (23:24 +0000)]
Treat the pubtypes section similarly to the pubnames section and emit
it by default under linux or when we're trying to keep compatibility
with old gdb versions.

Fix testcase for option name change.

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

11 years agoOnly emit the section sym if we're emitting the section.
Eric Christopher [Mon, 26 Aug 2013 23:24:31 +0000 (23:24 +0000)]
Only emit the section sym if we're emitting the section.

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

11 years agoFix inserting instructions before last in bundle.
Matt Arsenault [Mon, 26 Aug 2013 23:08:37 +0000 (23:08 +0000)]
Fix inserting instructions before last in bundle.

The builder inserts from before the insert point,
not after, so this would insert before the last
instruction in the bundle instead of after it.

I'm not sure if this can actually be a problem
with any of the current insertions.

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

11 years agoDebug Info: add an identifier field to DICompositeType.
Manman Ren [Mon, 26 Aug 2013 22:39:55 +0000 (22:39 +0000)]
Debug Info: add an identifier field to DICompositeType.

DICompositeType will have an identifier field at position 14. For now, the
field is set to null in DIBuilder.
For DICompositeTypes where the template argument field (the 13th field)
was optional, modify DIBuilder to make sure the template argument field is set.
Now DICompositeType has 15 fields.

Update DIBuilder to use NULL instead of "i32 0" for null value of a MDNode.
Update verifier to check that DICompositeType has 15 fields and the last
field is null or a MDString.

Update testing cases to include an extra field for DICompositeType.
The identifier field will be used by type uniquing so a front end can
genearte a DICompositeType with a unique identifer.

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

11 years agoLoopVectorize: Implement partial loop unrolling when vectorization is not profitable.
Nadav Rotem [Mon, 26 Aug 2013 22:33:26 +0000 (22:33 +0000)]
LoopVectorize: Implement partial loop unrolling when vectorization is not profitable.
This patch enables unrolling of loops when vectorization is legal but not profitable.
We add a new class InnerLoopUnroller, that extends InnerLoopVectorizer and replaces some of the vector-specific logic with scalars.

This patch does not introduce any runtime regressions and improves the following workloads:

SingleSource/Benchmarks/Shootout/matrix -22.64%
SingleSource/Benchmarks/Shootout-C++/matrix -13.06%
External/SPEC/CINT2006/464_h264ref/464_h264ref  -3.99%
SingleSource/Benchmarks/Adobe-C++/simple_types_constant_folding -1.95%

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

11 years agoFix thinko.
Eric Christopher [Mon, 26 Aug 2013 20:58:35 +0000 (20:58 +0000)]
Fix thinko.

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

11 years agoARM: Enable machine verifier for a few more tests.
Jim Grosbach [Mon, 26 Aug 2013 20:22:08 +0000 (20:22 +0000)]
ARM: Enable machine verifier for a few more tests.

Now that fast-isel is in better shape, we can enable the machine
verifier for these tests, too.

rdar://12594152

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

11 years agoARM: Constrain regclass for TSTri instruction.
Jim Grosbach [Mon, 26 Aug 2013 20:22:05 +0000 (20:22 +0000)]
ARM: Constrain regclass for TSTri instruction.

Get the register class right for the TST instruction. This keeps the
machine verifier happy, enabling us to turn it on for another test.

rdar://12594152

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

11 years agoDummy code to silence warning from 4189266
Bill Schmidt [Mon, 26 Aug 2013 20:11:46 +0000 (20:11 +0000)]
Dummy code to silence warning from 4189266

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

11 years agoARM: FastISel verifier error cleanup.
Jim Grosbach [Mon, 26 Aug 2013 20:07:29 +0000 (20:07 +0000)]
ARM: FastISel verifier error cleanup.

Constant pool and global value reference instructions need more
restricted register classes than plain GPR.

rdar://12594152

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

11 years agoARM: Fix ELF global base reg intialization.
Jim Grosbach [Mon, 26 Aug 2013 20:07:25 +0000 (20:07 +0000)]
ARM: Fix ELF global base reg intialization.

The create machine code wasn't properly in SSA, which the machine verifier
properly complains about. Now that fast-isel is closer to verifier clean,
errors like this show up more clearly.

Additionally, the Thumb pseudo tPICADD was used for both ARM and Thumb
mode functions, which is obviously wrong. Fix that along the way.

Test case is part of the following commit which will finish making an
additional fast-isel test verifier clean an enable it for the
regression test suite. This commit is separate since its not just
a verifier cleanup, but an actual correctness issue.

rdar://12594152 (for the fast-isel verifier aspects)

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

11 years ago[PowerPC] More fast-isel chunks (returns and integer extends)
Bill Schmidt [Mon, 26 Aug 2013 19:42:51 +0000 (19:42 +0000)]
[PowerPC] More fast-isel chunks (returns and integer extends)

Incremental improvement to fast-isel for PPC64.  This allows us to
select on ret, sext, and zext.  Filling in sext/zext improves some of
the existing logic in handling compare-immediates that needed extends.

A simplified return convention for fast-isel is also added to the
PPC64 calling conventions.  All call/return processing for DAG
selection is handled with custom code, so there isn't an existing CC
to rely on here.  The include of PPCGenCallingConv.inc causes compiler
warnings due to the 32-bit calling conventions that are not used, so
the dummy function "usePPC32CCs()" is added here to silence those.

Test cases for the return and extend logic are added.

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