Alexey Samsonov [Mon, 5 Aug 2013 13:19:49 +0000 (13:19 +0000)]
80-cols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187725
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Mon, 5 Aug 2013 12:17:06 +0000 (12:17 +0000)]
LLVM Interpreter: This patch implements vector support for cast operations (zext, sext, uitofp, sitofp, trunc, fpext, fptosi, fptrunc, bitcast) and shift operations (shl, ashr, lshr) for integer and floating point data types.
Added tests.
Done by Yuri Veselov (mailto:Yuri.Veselov@intel.com).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187724
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 5 Aug 2013 11:23:46 +0000 (11:23 +0000)]
[SystemZ] Use BRCT and BRCTG to eliminate add-&-compare sequences
This patch just uses a peephole test for "add; compare; branch" sequences
within a single block. The IR optimizers already convert loops to
decrement-and-branch-on-nonzero form in some cases, so even this
simplistic test triggers many times during a clang bootstrap and
projects/test-suite run. It looks like there are still cases where we
need to more strongly prefer branches on nonzero though. E.g. I saw a
case where a loop that started out with a check for 0 ended up with a
check for -1. I'll try to look at that sometime.
I ended up adding the Reference class because MachineInstr::readsRegister()
doesn't check for subregisters (by design, as far as I could tell).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187723
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 5 Aug 2013 11:11:11 +0000 (11:11 +0000)]
Don't leak passes if added outside of the area determined by Started/Stopped flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187722
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 5 Aug 2013 11:07:38 +0000 (11:07 +0000)]
[SystemZ] Add definitions for BRCT and BRCTG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187721
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 5 Aug 2013 11:03:20 +0000 (11:03 +0000)]
[SystemZ] Use LOAD AND TEST to eliminate comparisons against zero
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187720
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 5 Aug 2013 11:00:53 +0000 (11:00 +0000)]
[SystemZ] Add LOAD AND TEST instructions
Just the definitions and MC support. The next patch uses them for codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187719
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 5 Aug 2013 10:58:53 +0000 (10:58 +0000)]
[SystemZ] Split out comparison elimination into a separate pass
Perhaps predictably, doing comparison elimination on the fly during
SystemZLongBranch turned out to be a bad idea. The next patches make
use of LOAD AND TEST and BRANCH ON COUNT, both of which require
changes to earlier instructions.
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187718
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Mon, 5 Aug 2013 08:52:21 +0000 (08:52 +0000)]
AVX-512 set: added mask operations, lowering BUILD_VECTOR for i1 vector types.
Added intrinsics and tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187717
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Mon, 5 Aug 2013 04:31:05 +0000 (04:31 +0000)]
Update the release notes about the status of the vectorizers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187714
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Mon, 5 Aug 2013 04:27:34 +0000 (04:27 +0000)]
Update the docs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187713
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Sun, 4 Aug 2013 23:56:53 +0000 (23:56 +0000)]
Add the saving of S2. This is needed for some of the floating point
helper functions. This can be optimized out later when the remaining
parts of the helper function work is moved into the Mips16HardFloat pass.
For now it forces us to use the 32 bit save/restore instructions instead
of the 16 bit ones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187712
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sun, 4 Aug 2013 23:55:24 +0000 (23:55 +0000)]
Remove "lto_on_osx" xfails, now that -rdynamic works on Darwin.
Note that this will require a recent version of the linker for Darwin
builds with LTO to pass these tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187711
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sun, 4 Aug 2013 22:06:11 +0000 (22:06 +0000)]
Build with the $RDYNAMIC flag on Darwin as well as other platforms.
Part of <rdar://problem/
14620988>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187710
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 4 Aug 2013 12:05:16 +0000 (12:05 +0000)]
X86: Turn fp selects into mask operations.
double test(double a, double b, double c, double d) { return a<b ? c : d; }
before:
_test:
ucomisd %xmm0, %xmm1
ja LBB0_2
movaps %xmm3, %xmm2
LBB0_2:
movaps %xmm2, %xmm0
after:
_test:
cmpltsd %xmm1, %xmm0
andpd %xmm0, %xmm2
andnpd %xmm3, %xmm0
orpd %xmm2, %xmm0
Small speedup on Benchmarks/SmallPT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187706
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Sun, 4 Aug 2013 10:46:07 +0000 (10:46 +0000)]
AVX-512 set: added VEXTRACTPS instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187705
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Sun, 4 Aug 2013 10:00:45 +0000 (10:00 +0000)]
X86: specify CPU on new test to fix atom buildbot
Apparently Atoms use lea for stack adjustment, which we weren't
looking for.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187704
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Sun, 4 Aug 2013 09:35:57 +0000 (09:35 +0000)]
X86: correct tail return address calculation
Due to the weird and wondeful usual arithmetic conversions, some
calculations involving negative values were getting performed in
uint32_t and then promoted to int64_t, which is really not a good
idea.
Patch by Katsuhiro Ueno.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187703
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 4 Aug 2013 09:06:29 +0000 (09:06 +0000)]
AsmParser: Store MacroLikeBodies on the side so they don't get leaked.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187702
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Sun, 4 Aug 2013 01:13:25 +0000 (01:13 +0000)]
Clean up code for Mips16 large frame handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187701
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 3 Aug 2013 22:43:29 +0000 (22:43 +0000)]
PPCAsmParser: Stop leaking names.
Store them in a place that gets cleaned up properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187700
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 3 Aug 2013 22:18:45 +0000 (22:18 +0000)]
Unbreak llvm-rtdyld build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187699
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 3 Aug 2013 22:16:37 +0000 (22:16 +0000)]
MachObjectFile: Don't leak on error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187698
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 3 Aug 2013 22:16:31 +0000 (22:16 +0000)]
llvm-rtdyld: Don't leak memory managers.
Dyld never outlives MemMgr, just put both on the stack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187697
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 3 Aug 2013 22:16:24 +0000 (22:16 +0000)]
ARMAsmParser: Plug a leak.
Using an object to do the cleanup may look like overkill, but it's safer and nicer than putting deletes everywhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187696
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 3 Aug 2013 22:16:16 +0000 (22:16 +0000)]
Stop leaking register infos in the disassemblers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187695
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Sat, 3 Aug 2013 12:25:10 +0000 (12:25 +0000)]
Fix PPC64 64-bit GPR inline asm constraint matching
Internally, the PowerPC backend names the 32-bit GPRs R[0-9]+, and names the
64-bit parent GPRs X[0-9]+. When matching inline assembly constraints with
explicit register names, on PPC64 when an i64 MVT has been requested, we need
to follow gcc's convention of using r[0-9]+ to refer to the 64-bit (parent)
registers.
At some point, we'll probably want to arrange things so that the generic code
in TargetLowering uses the AsmName fields declared in *RegisterInfo.td in order
to match these inline asm register constraints. If we do that, this change can
be reverted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187693
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 3 Aug 2013 01:03:12 +0000 (01:03 +0000)]
Minor address space code simplification.
Remove assertion that the verifier should catch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187692
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 2 Aug 2013 22:51:11 +0000 (22:51 +0000)]
Regenerate with changes for -rdynamic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187687
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 2 Aug 2013 22:51:06 +0000 (22:51 +0000)]
Link with -rdynamic instead of -Wl,-export-dynamic.
Recent versions of the OS X linker support this but follow the existing
OS X linker convention of using an underscore in the option name, i.e.,
-export_dynamic. Rather than changing our configure scripts to check for
that alternate spelling, it is simpler to just use the compiler's -rdynamic
option and let it deal with translating that to the appropriate linker
option. One potential disadvantage of this approach is that the compiler
will typically ignore -rdynamic on platforms where it is not supported, so
the HAVE_LINK_EXPORT_DYNAMIC in config.h will not necessarily show whether
that option has any effect or not. I don't see any in-tree uses of that
macro, so I'm assuming it is OK.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187686
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Fri, 2 Aug 2013 22:34:30 +0000 (22:34 +0000)]
Add a AttributeSetImpl::dump function.
This is for the benefit of those of us with inferior debuggers which
do not permit member function calls on value types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187685
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Fri, 2 Aug 2013 22:29:40 +0000 (22:29 +0000)]
Make one of the AttributeSet ctors maintain the invariant that the
attribute list is ordered by index.
Differential Revision: http://llvm-reviews.chandlerc.com/D1265
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187682
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 2 Aug 2013 21:20:27 +0000 (21:20 +0000)]
Option parsing: recognize the special -- token
Everything that comes after -- should be treated as a filename. This
enables passing in filenames that would otherwise be conflated with
command-line options.
This is especially important for clang-cl which supports options
starting with /, which are easily conflatable with Unix-style
path names.
Differential Revision: http://llvm-reviews.chandlerc.com/D1274
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187675
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Fri, 2 Aug 2013 21:13:42 +0000 (21:13 +0000)]
Fix invalid function pointers in bugpoint ExtractLoops
The ExtractLoops function tries to reduce the failing test case by extracting
one or more loops from the misoptimized piece of the program. In doing this,
ExtractLoops must keep the MiscompiledFunctions vector up-to-date by ensuring
that the pointers refer to functions in the current failing program.
Unfortunately, this is not trivial because:
- ExtractLoops is iterative, and there are several early exits (and the
MiscompiledFunctions vector must be consistent with the current program at
every non-fatal exit point).
- Several of the utility functions used by ExtractLoops (such as
TestOptimizer, some of which are called through the TestFn callback
parameter, and Linker::LinkModules) delete their inputs upon success.
This change adds several updates of the MiscompiledFunctions vector at
different points. The first is after the initial call to TestMergedProgram
which checks that the loop-extracted program still works. The second is after
the call to TestFn (TestOptimizer, for example). This function will delete its
inputs (which is why the existing ExtractLoops logic cloned the inputs first).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187674
91177308-0d34-0410-b5e6-
96231b3b80d8
Joey Gouly [Fri, 2 Aug 2013 20:50:01 +0000 (20:50 +0000)]
Add a missing 'return' statement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187671
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Fri, 2 Aug 2013 19:23:33 +0000 (19:23 +0000)]
[mips] Expand vector truncating stores and extending loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187667
91177308-0d34-0410-b5e6-
96231b3b80d8
Joey Gouly [Fri, 2 Aug 2013 19:18:12 +0000 (19:18 +0000)]
[ARMv8] Add an assembler warning for the deprecated 'setend' instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187666
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Fri, 2 Aug 2013 18:40:24 +0000 (18:40 +0000)]
SLPVectorizer: Fix PR16777. PHInodes may use multiple extracted values that come from different blocks.
Thanks Alexey Samsonov.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187663
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 2 Aug 2013 18:33:34 +0000 (18:33 +0000)]
Teach EmitGEPOffset about address spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187662
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Fri, 2 Aug 2013 17:10:04 +0000 (17:10 +0000)]
Fixes ARM LNT bot from SLP change in O3
This patch fixes the multiple breakages on ARM test-suite after the SLP
vectorizer was introduced by default on O3. The problem was an illegal
vector type on ARMTTI::getCmpSelInstrCost() <3 x i1> which is not simple.
The guard protects this code from breaking (cause of the problems) but
doesn't fix the issue that is generating the odd vector in the first
place, which also needs to be investigated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187658
91177308-0d34-0410-b5e6-
96231b3b80d8
Carlo Kok [Fri, 2 Aug 2013 16:14:15 +0000 (16:14 +0000)]
Bugfix for making the DWARF debug strings and labels to code emitted as secrel32 instead of long opcodes (only for coff). This makes them debuggable with GDB (with fix for 64bits msvc)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187656
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Fri, 2 Aug 2013 11:32:50 +0000 (11:32 +0000)]
Fix handling of CHECK-DAG combined with CHECK-NOT
Patch by Daniel Sanders.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187651
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 2 Aug 2013 09:37:20 +0000 (09:37 +0000)]
Pacify GCC, which worries about falling off the end of the switch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187649
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Fri, 2 Aug 2013 08:06:43 +0000 (08:06 +0000)]
Fix dereferencing end iterator in SimplifyCFG. Patch by Ye Mei.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187646
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 2 Aug 2013 03:46:05 +0000 (03:46 +0000)]
Revert r187597, "Bugfix for making the DWARF debug strings and labels to code emitted as secrel32 instead of long opcodes (only for coff). This makes them debuggable with GDB."
It broke x86_64-win32 builder in llvm/test/DebugInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187642
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 2 Aug 2013 01:51:52 +0000 (01:51 +0000)]
Use @rpath for libraries rather than @executable_path on OSX.
Patch by Benjamin Scarlet!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187641
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 2 Aug 2013 00:49:44 +0000 (00:49 +0000)]
Temporarily revert "Debug Info Finder|Verifier: handle DbgLoc attached to
instructions." in an attempt to bring back some bots.
This reverts commit r187609.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187638
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 2 Aug 2013 00:10:44 +0000 (00:10 +0000)]
Teach InstructionSimplify about pointer address spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187635
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Thu, 1 Aug 2013 23:14:16 +0000 (23:14 +0000)]
[mips] Make load/store accumulator pseudo instructions codeGenOnly. Also,
remove lines that are setting DecoderNamespace for pseudo atomic instructions.
No intended functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187632
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Thu, 1 Aug 2013 22:42:18 +0000 (22:42 +0000)]
Teach getOrEnforceKnownAlignment about address spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187629
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Thu, 1 Aug 2013 22:41:58 +0000 (22:41 +0000)]
Move the optlevel check to the frontend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187628
91177308-0d34-0410-b5e6-
96231b3b80d8
Carlo Kok [Thu, 1 Aug 2013 22:15:34 +0000 (22:15 +0000)]
fix for LLVM debug info on llvm-mips-linux where the label name uses % instead of L as a prefix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187623
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 1 Aug 2013 21:42:05 +0000 (21:42 +0000)]
Use function attributes to indicate that we don't want to realign the stack.
Function attributes are the future! So just query whether we want to realign the
stack directly from the function instead of through a random target options
structure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187618
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 1 Aug 2013 21:36:02 +0000 (21:36 +0000)]
Expose that the unique file ID has a device and a file component.
The use of sd_dev and st_ino has reached libclang, so expose the two components
in UniqueID so that we can use it in clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187616
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Malea [Thu, 1 Aug 2013 21:18:16 +0000 (21:18 +0000)]
Fixed the Intel-syntax X86 disassembler to respect the (existing) option for hexadecimal immediates, to match AT&T syntax. This also brings a new option for C-vs-MASM-style hex.
Patch by Richard Mitton
Reviewed: http://llvm-reviews.chandlerc.com/D1243
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187614
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Thu, 1 Aug 2013 21:17:53 +0000 (21:17 +0000)]
Fix some issues with Mips16 floating when certain intrinsics are present.
This is actually an LLVM bug in the way it generates signatures for these
when soft float is enabled. For example, floor ends up having the signature
of int64(int64). The signature part is not the same as where the actual
parameter types are recorded, and those ARE of course int64(int64) when
soft float is enabled. (Yes, Mips16 hard float uses soft float but with
different runtime rounes but then has to interoperate with Mips32 using
normal floating point). This logic will eventually be moved to the
Mips16HardFloat pass so it's not worth sorting out these issues in LLVM
since nobody but Mips16 cares about these signatures, as far as I know,
and even I won't eventually either.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187613
91177308-0d34-0410-b5e6-
96231b3b80d8
Carlo Kok [Thu, 1 Aug 2013 20:53:57 +0000 (20:53 +0000)]
ARM/Hexagon testcases can't compile x86 only testcase. Reverting change to testcase & fixing check for all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187610
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Thu, 1 Aug 2013 20:52:39 +0000 (20:52 +0000)]
Debug Info Finder|Verifier: handle DbgLoc attached to instructions.
Also remove checking of llvm.dbg.sp since it is not used in generating dwarf.
Current state of Finder:
DebugInfoFinder tries to list all debug info MDNodes used in a module. To
list debug info MDNodes used by an instruction, DebugInfoFinder provides
processDeclare, processValue and processLocation to handle DbgDeclareInst,
DbgValueInst and DbgLoc attached to instructions. processModule will go
through all DICompileUnits in llvm.dbg.cu and list debug info MDNodes
used by the CUs.
TODO:
1> Finder has a list of CUs, SPs, Types, Scopes and global variables. We
need to add a list of variables that are used by DbgDeclareInst and
DbgValueInst.
2> MDString fields should be null or isa<MDString> and MDNode fields should be
null or isa<MDNode>. We currently use empty string or int 0 to represent null.
3> Go though Verify functions and make sure that they check field types.
4> Clean up existing testing cases to remove llvm.dbg.sp and make sure each
testing case has a llvm.dbg.cu.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187609
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 1 Aug 2013 20:30:22 +0000 (20:30 +0000)]
DebugInfo: Emit definitions for types with no members.
The absence of members was a poor/incorrect proxy for "is definition".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187607
91177308-0d34-0410-b5e6-
96231b3b80d8
Carlo Kok [Thu, 1 Aug 2013 20:17:37 +0000 (20:17 +0000)]
change the inlinefnlocalvar testcase so it uses a triple that's not coff (doesn't seem to matter for the testcase itself, what it tests isn't triple specific), as coff has a slightly different way of emitting what it checks for.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187604
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 1 Aug 2013 19:29:26 +0000 (19:29 +0000)]
Temporarily xfail a test that breaks on OS X when building with LTO.
This is another case where internalize hides a symbol that is needed by
a loadable module. I am currently investigating a proper fix but this patch
will get our buildbot to pass in the meantime. <rdar://problem/
14578094>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187601
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Thu, 1 Aug 2013 18:42:28 +0000 (18:42 +0000)]
Update incorrect file headers.
One of these was spotted in review by Rafael.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187598
91177308-0d34-0410-b5e6-
96231b3b80d8
Carlo Kok [Thu, 1 Aug 2013 18:38:14 +0000 (18:38 +0000)]
Bugfix for making the DWARF debug strings and labels to code emitted as secrel32 instead of long opcodes (only for coff). This makes them debuggable with GDB.
fixes Bug 16249 - LLVM generates broken debug info on Windows
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187597
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Thu, 1 Aug 2013 18:28:15 +0000 (18:28 +0000)]
Only enable SLP-vectorization on O3 builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187595
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Thu, 1 Aug 2013 18:04:07 +0000 (18:04 +0000)]
Pass -G argument to cmake with the same generator's name as used for the
initial cmake invocation.
Patch reviewed by Reid Kleckner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187591
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Lytton [Thu, 1 Aug 2013 17:17:59 +0000 (17:17 +0000)]
remove executable permission from IntrinsicsXCore.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187584
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Thu, 1 Aug 2013 15:23:42 +0000 (15:23 +0000)]
R600: Add 64-bit float load/store support
* Added R600_Reg64 class
* Added T#Index#.XY registers definition
* Added v2i32 register reads from parameter and global space
* Added f32 and i32 elements extraction from v2f32 and v2i32
* Added v2i32 -> v2f32 conversions
Tom Stellard:
- Mark vec2 operations as expand. The addition of a vec2 register
class made them all legal.
Patch by: Dmitry Cherkassov
Signed-off-by: Dmitry Cherkassov <dcherkassov@gmail.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187582
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Thu, 1 Aug 2013 15:23:31 +0000 (15:23 +0000)]
R600: Use 64-bit alignment for 64-bit kernel arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187581
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Thu, 1 Aug 2013 15:23:26 +0000 (15:23 +0000)]
R600/SI: Custom lower i64 ZERO_EXTEND
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187580
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Thu, 1 Aug 2013 13:34:06 +0000 (13:34 +0000)]
EVEX and compressed displacement encoding for AVX512
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187576
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Thu, 1 Aug 2013 10:39:40 +0000 (10:39 +0000)]
[SystemZ] Reuse CC results for integer comparisons with zero
This also fixes a bug in the predication of LR to LOCR: I'd forgotten
that with these in-place instruction builds, the implicit operands need
to be added manually. I think this was latent until now, but is tested
by int-cmp-45.c. It also adds a CC valid mask to STOC, again tested by
int-cmp-45.c.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187573
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Thu, 1 Aug 2013 10:29:45 +0000 (10:29 +0000)]
[SystemZ] Prefer comparisons with zero
Convert >= 1 to > 0, etc. Using comparison with zero isn't a win on its own,
but it exposes more opportunities for CC reuse (the next patch).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187571
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Medic [Thu, 1 Aug 2013 09:35:25 +0000 (09:35 +0000)]
Add tests for Mips DSP instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187570
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Medic [Thu, 1 Aug 2013 09:25:27 +0000 (09:25 +0000)]
Moving definition of MnemonicContainsDot field from class Instruction to class AsmParser as suggested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187569
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Thu, 1 Aug 2013 09:20:35 +0000 (09:20 +0000)]
AArch64: add initial NEON support
Patch by Ana Pazos.
- Completed implementation of instruction formats:
AdvSIMD three same
AdvSIMD modified immediate
AdvSIMD scalar pairwise
- Completed implementation of instruction classes
(some of the instructions in these classes
belong to yet unfinished instruction formats):
Vector Arithmetic
Vector Immediate
Vector Pairwise Arithmetic
- Initial implementation of instruction formats:
AdvSIMD scalar two-reg misc
AdvSIMD scalar three same
- Intial implementation of instruction class:
Scalar Arithmetic
- Initial clang changes to support arm v8 intrinsics.
Note: no clang changes for scalar intrinsics function name mangling yet.
- Comprehensive test cases for added instructions
To verify auto codegen, encoding, decoding, diagnosis, intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187567
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Lytton [Thu, 1 Aug 2013 08:41:32 +0000 (08:41 +0000)]
XCore target: add GCCBuiltin to four intrinsics
The following are made available by clang in the XCore ABI
__builtin_bitrev
__builtin_getid
__builtin_getps
__builtin_setps
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187566
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Lytton [Thu, 1 Aug 2013 08:29:44 +0000 (08:29 +0000)]
XCore target: Fix Vararg handling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187565
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Lytton [Thu, 1 Aug 2013 08:18:55 +0000 (08:18 +0000)]
XCore target: Add byval handling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187563
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Lytton [Thu, 1 Aug 2013 07:52:05 +0000 (07:52 +0000)]
Xcore target
Fix emitArrayBound() calling OutStreamer.Emit*() multiple times when trying to print a single line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187562
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Thu, 1 Aug 2013 02:26:31 +0000 (02:26 +0000)]
Fix some misc. issues with Mips16 fp stubs.
1) They should never be inlined.
2) A naming inconsistency with gcc mips16
3) Stubs should not have the global attribute
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187555
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 1 Aug 2013 01:38:16 +0000 (01:38 +0000)]
Formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187554
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Thu, 1 Aug 2013 00:59:06 +0000 (00:59 +0000)]
Add an omitted IsCall=1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187553
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Wed, 31 Jul 2013 23:28:51 +0000 (23:28 +0000)]
Option parsing: remove non-SUPPORT_ALIASARGS fall-back
The clients of this code have been updated to all support AliasArgs.
This depends on Clang r187538 and lld r187541.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187546
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Wed, 31 Jul 2013 22:44:41 +0000 (22:44 +0000)]
Option parsing: add support for alias arguments.
This makes option aliases more powerful by enabling them to
pass along arguments to the option they're aliasing.
For example, if we have a joined option "-foo=", we can now
specify a flag option "-bar" to be an alias of that, with the
argument "baz".
This is especially useful for the cl.exe compatible clang driver,
where many options are aliases. For example, this patch enables
us to alias "/Ox" to "-O3" (-O is a joined option), and "/WX" to
"-Werror" (again, -W is a joined option).
Differential Revision: http://llvm-reviews.chandlerc.com/D1245
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187537
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Wed, 31 Jul 2013 22:17:45 +0000 (22:17 +0000)]
80-col
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187535
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 31 Jul 2013 21:05:54 +0000 (21:05 +0000)]
comment typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187531
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Wed, 31 Jul 2013 21:05:30 +0000 (21:05 +0000)]
Added the B9.3.19 SUBS PC, LR, #imm (Thumb2) system instruction.
While the .td entry is nice and all, it takes a pretty gross hack in
ARMAsmParser::ParseInstruction() because of handling of other "subs"
instructions to get it to match. Ran it by Jim Grosbach and he said it was
about what he expected to make this work given the existing code.
rdar://
14214063
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187530
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Wed, 31 Jul 2013 20:43:27 +0000 (20:43 +0000)]
Revert "R600: Non vector only instruction can be scheduled on trans unit"
This reverts commit
98ce62780ea7185ba710868bf83c8077e8d7f6d6.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187526
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Wed, 31 Jul 2013 20:43:08 +0000 (20:43 +0000)]
Revert "TableGen: Enumerate Schedule Model too."
This reverts commit
2ca1e4a39c7e0d7a00e66ff5437c6d7ace2404a0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187525
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Wed, 31 Jul 2013 20:43:03 +0000 (20:43 +0000)]
Revert "R600: Use SchedModel enum for is{Trans,Vector}Only functions"
This reverts commit
3f1de26cb5cc0543a6a1d71259a7a39d97139051.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187524
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Wed, 31 Jul 2013 19:32:12 +0000 (19:32 +0000)]
R600: Do not mergevector after a vector reg is used
If we merge vector when a vector is used, it will generate an artificial
antidependency that can prevent 2 tex/vtx instructions to use the same
clause and thus generate extra clauses that reduce performance.
There is no test case as such situation is really hard to predict.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187516
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Wed, 31 Jul 2013 19:32:07 +0000 (19:32 +0000)]
R600: Avoid more than 4 literals in the same instruction group at scheduling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187515
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Wed, 31 Jul 2013 19:31:56 +0000 (19:31 +0000)]
R600: Non vector only instruction can be scheduled on trans unit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187514
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Wed, 31 Jul 2013 19:31:41 +0000 (19:31 +0000)]
R600: Don't mix LDS and non-LDS instructions in the same group
There are a lot of restrictions on instruction groups that contain
LDS instructions, so for now we will be conservative and not packetize
anything else with them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187513
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Wed, 31 Jul 2013 19:31:35 +0000 (19:31 +0000)]
R600: Use SchedModel enum for is{Trans,Vector}Only functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187512
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Wed, 31 Jul 2013 19:31:20 +0000 (19:31 +0000)]
TableGen: Enumerate Schedule Model too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187511
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Wed, 31 Jul 2013 19:31:14 +0000 (19:31 +0000)]
R600: Remove predicated_break inst
We were using two instructions for similar purpose : break and
predicated break. Only predicated_break was emitted and it was
lowered at R600ControlFlowFinalizer to JUMP;CF_BREAK;POP.
This commit simplify the situation by making AMDILCFGStructurizer
emit IF_PREDICATE;BREAK;ENDIF; instead of predicated_break (which
is now removed).
There is no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187510
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 31 Jul 2013 17:49:08 +0000 (17:49 +0000)]
Reject bitcasts between address spaces with different sizes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187506
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Wed, 31 Jul 2013 12:58:26 +0000 (12:58 +0000)]
[SystemZ] Implement isLegalAddressingMode()
The loop optimizers were assuming that scales > 1 were OK. I think this
is actually a bug in TargetLoweringBase::isLegalAddressingMode(),
since it seems to be trying to reject anything that isn't r+i or r+r,
but it has no default case for scales other than 0, 1 or 2. Implementing
the hook for z means that z can no longer test any change there though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187497
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Wed, 31 Jul 2013 12:38:08 +0000 (12:38 +0000)]
[SystemZ] Be more careful about inverting CC masks (conditional loads)
Extend r187495 to conditional loads. I split this out because the
easiest way seemed to be to force a particular operand order in
SystemZISelDAGToDAG.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187496
91177308-0d34-0410-b5e6-
96231b3b80d8