OSDN Git Service
Zachary Turner [Fri, 30 Jan 2015 18:07:45 +0000 (18:07 +0000)]
Move DebugInfo to DebugInfo/DWARF.
In preparation for adding PDB support to LLVM, this moves the
DWARF parsing code to its own subdirectory under DebugInfo, and
renames LLVMDebugInfo to LLVMDebugInfoDWARF.
This is purely a mechanical / build system change.
Differential Revision: http://reviews.llvm.org/D7269
Reviewed by: Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227586
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Fri, 30 Jan 2015 17:58:25 +0000 (17:58 +0000)]
ARM: correct handling of .fpu directive
The FPU directive permits the user to switch the target FPU, enabling
instructions that would be otherwise unavailable. However, when configuring the
new subtarget features, we would not enable the implied functions for newer
FPUs. This would result in invalid rejection of valid input. Ensure that we
inherit the implied FPU functionality when enabling newer versions of the FPU.
Fortunately, these are mostly hierarchical, unlike the CPUs.
Addresses PR22395.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227584
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 30 Jan 2015 16:58:58 +0000 (16:58 +0000)]
tidy up; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227582
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 30 Jan 2015 13:33:42 +0000 (13:33 +0000)]
[PM] Sink the population of the pass manager with target-specific
analyses back into the LTO code generator.
The pass manager builder (and the transforms library in general)
shouldn't be referencing the target machine at all.
This makes the LTO population work like the others -- the data layout
and target transform info need to be pre-populated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227576
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 30 Jan 2015 13:30:43 +0000 (13:30 +0000)]
Fix a warning introduced by r227557 due to a default label in a fully
covering switch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227575
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 30 Jan 2015 13:01:19 +0000 (13:01 +0000)]
[Cygming] Seek also chkstk_ms, or JIT fails with DLL builds. It is fixup for r227519.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227574
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 30 Jan 2015 13:01:00 +0000 (13:01 +0000)]
Regenerate configure since r227090.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227573
91177308-0d34-0410-b5e6-
96231b3b80d8
Toma Tabacu [Fri, 30 Jan 2015 11:18:50 +0000 (11:18 +0000)]
[mips] Manually replace JAL pseudo-instructions with their JALR equivalent, instead of using InstAlias.
Summary:
This is needed by the .cprestore assembler directive.
This directive needs to be able to insert an LW instruction after every JALR replacement of a JAL pseudo-instruction
(and never after a JALR which has NOT been a result of a pseudo-instruction replacement).
The problem with using InstAlias for these is that after it replaces the pseudo-instruction, we can't find out if the resulting JALR instruction
was generated by an InstAlias or not, so we don't know whether or not to insert our LW instruction.
By replacing it manually, we know when the pseudo-instruction replacement happens and we can insert the LW instruction correctly.
Reviewers: dsanders
Reviewed By: dsanders
Subscribers: emaste, llvm-commits
Differential Revision: http://reviews.llvm.org/D5601
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227568
91177308-0d34-0410-b5e6-
96231b3b80d8
Filipe Cabecinhas [Fri, 30 Jan 2015 10:57:58 +0000 (10:57 +0000)]
[bitcode reader] Fix an assert on invalid type tables
Bug found with afl-fuzz
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227566
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 30 Jan 2015 10:09:26 +0000 (10:09 +0000)]
Introduce llvm/test/LTO/X86. LTO tests may be assumed as target-specific.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227564
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 30 Jan 2015 09:53:37 +0000 (09:53 +0000)]
Introduce llvm/test/LTO/ARM for arm-specific LTO test(s).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227563
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 30 Jan 2015 09:05:49 +0000 (09:05 +0000)]
Change a very hot piece of code in TableGen's register unit computations to use bit vectors rather than arrays.
For target descriptions with very large and very dense register files, TableGen
can take an extremely long time to run. This change makes a dent in that (~15%
in my measurements) by accelerating the single hottest operation with better data
structures.
I believe there's still a lot of room to make this even faster with more global
changes that require replacing some of the existing datastructures in this area
with bit vectors, but that's a more involved change and I wanted to get this
simpler improvement in first.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227562
91177308-0d34-0410-b5e6-
96231b3b80d8
Hao Liu [Fri, 30 Jan 2015 07:33:31 +0000 (07:33 +0000)]
Move the target specific test case arbitrary-induction-step.ll to test/Transforms/LoopVectorize/AArch64 folder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227561
91177308-0d34-0410-b5e6-
96231b3b80d8
Hao Liu [Fri, 30 Jan 2015 05:02:21 +0000 (05:02 +0000)]
[LoopVectorize] Induction variables: support arbitrary constant step.
Previously, only -1 and +1 step values are supported for induction variables. This patch extends LV to support
arbitrary constant steps.
Initial patch by Alexey Volkov. Some bug fixes are added in the following version.
Differential Revision: http://reviews.llvm.org/D6051 and http://reviews.llvm.org/D7193
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227557
91177308-0d34-0410-b5e6-
96231b3b80d8
Hao Liu [Fri, 30 Jan 2015 02:13:53 +0000 (02:13 +0000)]
[AArch64]Fix PR21675, a bug about lowering llvm.ctpop.i32. We should noot use "DAG.getUNDEF(MVT::v8i8)" to get all zero vector.
Patch by Wei-cheng Wang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227550
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 30 Jan 2015 02:11:26 +0000 (02:11 +0000)]
Use the cached subtarget in PPCFrameLowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227548
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 30 Jan 2015 02:11:24 +0000 (02:11 +0000)]
Migrate some of PPC away from the use of bare getSubtarget/getSubtargetImpl.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227547
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 30 Jan 2015 02:11:21 +0000 (02:11 +0000)]
Migrage PPCRegisterInfo to use the cached subtarget.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227546
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Fri, 30 Jan 2015 01:55:25 +0000 (01:55 +0000)]
Fix PR22386. The inliner moves static allocas to the entry basic block
so we need to move the dbg.declare intrinsics that describe them, too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227544
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 30 Jan 2015 01:50:09 +0000 (01:50 +0000)]
Migrate a bare getSubtarget call to query the MachineFunction
for the target dependent one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227542
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 30 Jan 2015 01:50:07 +0000 (01:50 +0000)]
Migrate NVPTXISelLowering to take the subtarget that it's dependent
upon as an argument and store/use that in the entire function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227541
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 30 Jan 2015 01:41:01 +0000 (01:41 +0000)]
Remove unused argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227539
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 30 Jan 2015 01:40:59 +0000 (01:40 +0000)]
Migrate NVPTXISelDAGToDAG's getSubtarget to a runOnMachineFunction
version. Update NVPTXInstrInfo accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227538
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 30 Jan 2015 01:30:01 +0000 (01:30 +0000)]
Remove calls to bare getSubtarget and clean up the functions
accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227535
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Fri, 30 Jan 2015 01:16:24 +0000 (01:16 +0000)]
[LTO] Scan all per-function subtargets when collecting runtime library names.
accumulateAndSortLibcalls in LTOCodeGenerator.cpp collects names of runtime
library functions which are used to identify user-defined functions that should
be protected. Previously, this function would only scan the TargetLowering
object belonging to the "main" subtarget for the library function names. This
commit changes it to scan all per-function subtargets.
Differential Revision: http://reviews.llvm.org/D7275
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227533
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Fri, 30 Jan 2015 01:14:28 +0000 (01:14 +0000)]
[llvm-lto] Add a line for setting LTOCodeGenerator's CPU string from command
line.
This is needed for a test case I plan to commit later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227532
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 30 Jan 2015 01:10:26 +0000 (01:10 +0000)]
Remove a few getSubtarget calls in AArch64 pass manager initialization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227531
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 30 Jan 2015 01:10:24 +0000 (01:10 +0000)]
Clean up some uses of getSubtarget in AArch64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227530
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 30 Jan 2015 01:10:18 +0000 (01:10 +0000)]
This only needs TargetInstrInfo, not the specialized one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227529
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 30 Jan 2015 00:41:44 +0000 (00:41 +0000)]
[PM] Remove two very old and dead forward declarations for the prior
incarnation of target transform info.
This is in preparation for starting to redesign TTI to be amenable to
the new PM world.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227525
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 30 Jan 2015 00:10:47 +0000 (00:10 +0000)]
Updating iOS.cmake to work with the latest Xcode and iOS 8 SDK.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227523
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 30 Jan 2015 00:10:43 +0000 (00:10 +0000)]
iOS doesn't have histedit.h available. We should gate use of libedit on whether or not this headers exists.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227522
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 30 Jan 2015 00:10:39 +0000 (00:10 +0000)]
iOS doesn't have crt_externs.h available, so we fall back to the posix method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227521
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 30 Jan 2015 00:05:39 +0000 (00:05 +0000)]
x86: Remove unused variables not caught by MSVC =P
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227520
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 29 Jan 2015 23:58:04 +0000 (23:58 +0000)]
x86: Fix large model calls to __chkstk for dynamic allocas
In the large code model, we now put __chkstk in %r11 before calling it.
Refactor the code so that we only do this once. Simplify things by using
__chkstk_ms instead of __chkstk on cygming. We already use that symbol
in the prolog emission, and it simplifies our logic.
Second half of PR18582.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227519
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 29 Jan 2015 23:46:42 +0000 (23:46 +0000)]
Remove unnecessary calls to getSubtarget/getSubtargetImpl from the
MSP430 backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227517
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 29 Jan 2015 23:46:39 +0000 (23:46 +0000)]
Remove unused header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227516
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 29 Jan 2015 23:35:04 +0000 (23:35 +0000)]
Change SmallVector param to the more general ArrayRef; NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227514
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 29 Jan 2015 23:27:45 +0000 (23:27 +0000)]
Get rid of a few calls through the subtarget to get the ABI
that's actually sitting on the target machine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227513
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 29 Jan 2015 23:27:36 +0000 (23:27 +0000)]
Remove most of the TargetMachine::getSubtarget/getSubtargetImpl
calls that don't take a Function argument from Mips. Notable
exceptions: the AsmPrinter and MipsTargetObjectFile. The
latter needs to be fixed, and the former will be fixed when the
general AsmPrinter changes happen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227512
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 29 Jan 2015 23:26:37 +0000 (23:26 +0000)]
[LPM] Remove a PPC64 hack to try to work around a bad interaction
between the linker's TLS optimizations and Clang's TLS code generation.
For now, Clang has been changed to disable linker TLS optimizations
until it (and LLVM more generally) are emitting TLS code sequences
compatible with the old bugs found in the linkers. That's a better fix
to handle bootstrapping on that platform.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227511
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 29 Jan 2015 23:09:37 +0000 (23:09 +0000)]
x86: Remove the W64ALLOCA pseudo
This is just an alias for CALL64pcrel32, and we can just use that opcode
with explicit defs in the MI.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227508
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 29 Jan 2015 23:01:07 +0000 (23:01 +0000)]
[fuzzer] add -use_full_coverage_set=1 which solves FullCoverageSetTest. This does not scale very well yet, but might be a good start.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227507
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 29 Jan 2015 22:57:37 +0000 (22:57 +0000)]
[AArch64] Add INITIALIZE_PASS macros to AArch64A57FPLoadBalancing.
These are needed so this pass will produce output when
e.g. -print-after-all is used.
Phabricator Review: http://reviews.llvm.org/D7264
Patch by Geoff Berry <gberry@codeaurora.org>!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227506
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 29 Jan 2015 22:33:00 +0000 (22:33 +0000)]
Update comments to use unreachable instead of llvm.trap, as implemented now
win64: Call __chkstk through a register with the large code model
Fixes half of PR18582. True dynamic allocas will still have a
CALL64pcrel32 which will fail.
Reviewers: majnemer
Differential Revision: http://reviews.llvm.org/D7267
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227503
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 29 Jan 2015 22:32:26 +0000 (22:32 +0000)]
Update comments to use unreachable instead of llvm.trap, as implemented now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227502
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Thu, 29 Jan 2015 21:52:03 +0000 (21:52 +0000)]
[LoopReroll] Alter the data structures used during reroll validation.
The validation algorithm used an incremental approach, building each
iteration's data structures temporarily, validating them, then
adding them to a global set.
This does not scale well to having multiple sets of Root nodes, as the
set of instructions used in each iteration is the union over all
the root nodes. Therefore, refactor the logic to create a single, simple
container to which later logic then refers. This makes it simpler
control-flow wise to make the creation of the container more complex with
the addition of multiple root sets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227499
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Thu, 29 Jan 2015 21:47:15 +0000 (21:47 +0000)]
[Hexagon] Organizing tests and adding a few missing jump instruction encodings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227498
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Thu, 29 Jan 2015 21:30:22 +0000 (21:30 +0000)]
[Hexagon] Adding missing instruction encodings and tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227495
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Thu, 29 Jan 2015 21:09:30 +0000 (21:09 +0000)]
[Hexagon] Adding alu vector instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227493
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 29 Jan 2015 20:51:49 +0000 (20:51 +0000)]
[GVN] don't propagate equality comparisons of FP zero (PR22376)
In http://reviews.llvm.org/D6911, we allowed GVN to propagate FP equalities
to allow some simple value range optimizations. But that introduced a bug
when comparing to -0.0 or 0.0: these compare equal even though they are not
bitwise identical.
This patch disallows propagating zero constants in equality comparisons.
Fixes: http://llvm.org/bugs/show_bug.cgi?id=22376
Differential Revision: http://reviews.llvm.org/D7257
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227491
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Thu, 29 Jan 2015 20:48:34 +0000 (20:48 +0000)]
All signal handlers are required to have C language linkage in C++. This does not fix all signal handlers, but does fix the most recent one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227490
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 29 Jan 2015 20:25:46 +0000 (20:25 +0000)]
Add missing test from r227488
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227489
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 29 Jan 2015 20:23:47 +0000 (20:23 +0000)]
Matching ARM change for r227481: DebugInfo: Teach Fast ISel to respect the debug location of comparisons in jumps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227488
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 29 Jan 2015 20:21:24 +0000 (20:21 +0000)]
Refactor test to be reused across architectures
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227487
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 29 Jan 2015 20:17:15 +0000 (20:17 +0000)]
Remove erroneous REQUIRES: object-emission for asm test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227486
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 29 Jan 2015 19:40:02 +0000 (19:40 +0000)]
Missing test case for r227481
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227485
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Thu, 29 Jan 2015 19:34:32 +0000 (19:34 +0000)]
R600/SI: Implement enableAggressiveFMAFusion
Add tests for the various combines. This should
always be at least cycle neutral on all subtargets for f64,
and faster on some. For f32 we should prefer selecting
v_mad_f32 over v_fma_f32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227484
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Thu, 29 Jan 2015 19:34:25 +0000 (19:34 +0000)]
R600/SI: Add subtarget feature for if f32 fma is fast
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227483
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Thu, 29 Jan 2015 19:34:18 +0000 (19:34 +0000)]
R600/SI: Fix tonga's basic scheduling model
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227482
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 29 Jan 2015 19:09:18 +0000 (19:09 +0000)]
DebugInfo: Teach Fast ISel to respect the debug location of comparisons in jumps
The use of the DbgLoc in FastISel is probably something we should fix.
It's prone to leaking the wrong location into instructions - we should
have a clear chain of custody from the debug location of an IR
Instruction to that of a MachineInstr to avoid such leakage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227481
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Thu, 29 Jan 2015 18:44:14 +0000 (18:44 +0000)]
Disable compilation of llvm-pdbdump for versions of MSVC < 2013.
Certain aspects of llvm-pdbdump require language support only present in
MSVC 2013 and higher. Since this is strictly a utility, and since we hope
to drop support for MSVC 2012 soon, don't build this unless MSVC 2013 or
higher.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227479
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 29 Jan 2015 18:13:36 +0000 (18:13 +0000)]
[fuzzer] fix warning in a test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227478
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 29 Jan 2015 17:33:21 +0000 (17:33 +0000)]
Compute the ELF SectionKind from the flags.
Any code creating an MCSectionELF knows ELF and already provides the flags.
SectionKind is an abstraction used by common code that uses a plain
MCSection.
Use the flags to compute the SectionKind. This removes a lot of
guessing and boilerplate from the MCSectionELF construction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227476
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Thu, 29 Jan 2015 17:26:56 +0000 (17:26 +0000)]
[Hexagon] Deleting old variants of intrinsics and adding missing tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227474
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Thu, 29 Jan 2015 17:20:41 +0000 (17:20 +0000)]
[lto] Disable dialog boxes on crash on Windows.
This has to be done in the DLL because the state doesn't cross DLL boundaries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227471
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Thu, 29 Jan 2015 17:20:29 +0000 (17:20 +0000)]
[Support][Windows] Unify dialog box suppression and print stack traces on abort.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227470
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 29 Jan 2015 17:16:23 +0000 (17:16 +0000)]
[fuzzer] minor cleanup based on reviews: remove redundant includes, fix a copy-pasto in tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227468
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 29 Jan 2015 17:11:30 +0000 (17:11 +0000)]
[fuzzer] add FAQ section to the README.txt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227466
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Thu, 29 Jan 2015 16:58:29 +0000 (16:58 +0000)]
Reverting r227452, which adds back the fuzzer library. Now excluding the fuzzer library based on LLVM_USE_SANITIZE_COVERAGE being set or unset.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227464
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Thu, 29 Jan 2015 16:55:37 +0000 (16:55 +0000)]
[Hexagon] Adding CR intrinsic tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227463
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Thu, 29 Jan 2015 16:55:28 +0000 (16:55 +0000)]
R600/SI: Remove stray debug statements
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227462
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Thu, 29 Jan 2015 16:55:25 +0000 (16:55 +0000)]
R600/SI: Define a schedule model and enable the generic machine scheduler
The schedule model is not complete yet, and could be improved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227461
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Thu, 29 Jan 2015 16:35:38 +0000 (16:35 +0000)]
[Hexagon] Deleting unused classes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227460
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Thu, 29 Jan 2015 16:18:59 +0000 (16:18 +0000)]
Oops -- accidentally commit some debug code! Removing that code; NFC (this time for real).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227459
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Lougher [Thu, 29 Jan 2015 16:18:29 +0000 (16:18 +0000)]
[X86] Use single add/sub for large stack offsets
For large stack offsets the compiler generates multiple immediate mode
sub/add instructions in the prologue/epilogue. This patch makes the
compiler place the final amount to be added/subtracted into a register,
which is then added/substracted with a single operation.
Differential Revision: http://reviews.llvm.org/D7226
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227458
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Thu, 29 Jan 2015 16:08:43 +0000 (16:08 +0000)]
[Hexagon] Adding XTYPE/PRED intrinsic tests. Converting predicate types to i32 instead of i1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227457
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Thu, 29 Jan 2015 16:02:06 +0000 (16:02 +0000)]
Attempting to fix a build issue with MSVC 2012; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227456
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Schmidt [Thu, 29 Jan 2015 15:59:09 +0000 (15:59 +0000)]
[PowerPC] Complete setting the baseline for ppc64le
Patch by Nemanja Ivanovic.
As was uncovered by the failing test case (when run on non-PPC
platforms), the feature set when compiling with -march=ppc64le was not
being picked up. This change ensures that if the -mcpu option is not
specified, the correct feature set is picked up regardless of whether
we are on PPC or not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227455
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Thu, 29 Jan 2015 15:49:22 +0000 (15:49 +0000)]
Temporarily reverting the fuzzer library as it causes too many build issues for MSVC users. This reverts: 227445, 227395, 227389, 227357, 227254, 227252
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227452
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Rosenberg [Thu, 29 Jan 2015 15:19:54 +0000 (15:19 +0000)]
Make the test actually test what it's supposed to test. Add a test for the from memory variant of vcvtph2ps for 256-bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227446
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Thu, 29 Jan 2015 15:19:13 +0000 (15:19 +0000)]
Adding missing #includes to try to get this to compile on Windows with Visual Studio.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227445
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Thu, 29 Jan 2015 14:45:09 +0000 (14:45 +0000)]
Remove unused tokens in the ll lexer.
Patch by Robin Eklind!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227442
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 29 Jan 2015 14:23:28 +0000 (14:23 +0000)]
Use isMergeableConst now that it is sane.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227441
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 29 Jan 2015 14:12:41 +0000 (14:12 +0000)]
Remove MergeableConst.
Only the specific ones (MergeableConst4, MergeableConst8, MergeableConst16) are
handled specially.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227440
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Thu, 29 Jan 2015 13:48:05 +0000 (13:48 +0000)]
[LoopReroll] Refactor most of reroll() into a helper class
reroll() was slightly monolithic and a pain to modify. Refactor
a bunch of its state from local variables to member variables
of a helper class, and do some trivial simplification while we're
there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227439
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Rosenberg [Thu, 29 Jan 2015 13:31:32 +0000 (13:31 +0000)]
Cleanup a few tests on sse4a machines and FileCheckize along the way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227437
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 29 Jan 2015 13:26:50 +0000 (13:26 +0000)]
EHPrepare: Remove leftover initialization code for DomTrees.
While there modernize some loops. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227436
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 29 Jan 2015 13:25:44 +0000 (13:25 +0000)]
Use enum values. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227435
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 29 Jan 2015 12:43:28 +0000 (12:43 +0000)]
Don't create multiple mergeable sections with -fdata-sections.
ELF has support for sections that can be split into fixed size or
null terminated entities.
Since these sections can be split by the linker, it is not necessary
to split them in codegen.
This reduces the combined .o size in a llvm+clang build from
202,394,570 to 173,819,098 bytes.
The time for linking clang with gold (on a VM, on a laptop) goes
from 2.
250089985 to 1.
383001792 seconds.
The flip side is the size of rodata in clang goes from 10,926,785
to 10,929,345 bytes.
The increase seems to be because of http://sourceware.org/bugzilla/show_bug.cgi?id=17902.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227431
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Medic [Thu, 29 Jan 2015 11:33:41 +0000 (11:33 +0000)]
[Mips][Disassembler] When disassembler meets cache/pref instructions for r6 it crashes as the access to operands array is out of range. This patch adds dedicated decoder method for R6 CACHE_HINT_DESC class that properly handles decoding of these instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227430
91177308-0d34-0410-b5e6-
96231b3b80d8
Charlie Turner [Thu, 29 Jan 2015 11:19:54 +0000 (11:19 +0000)]
Add a missing Tag_DIV_use test for Cortex-M7.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227429
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Thu, 29 Jan 2015 11:06:59 +0000 (11:06 +0000)]
CommandLineParser: Avoid non-static member nitializer(s).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227428
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 29 Jan 2015 07:53:13 +0000 (07:53 +0000)]
Fix the preprocessor checks used to determine if backtraces have been enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227424
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 29 Jan 2015 07:35:31 +0000 (07:35 +0000)]
Use the existing build configuration parameter ENABLE_BACKTRACE to compile out all pretty stack trace support when backtraces are disabled.
This has the nice secondary effect of allowing LLVM to continue to build
for targets without __thread or thread_local support to continue to work
so long as they build without support for backtraces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227423
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Thu, 29 Jan 2015 06:56:24 +0000 (06:56 +0000)]
[ELFYAML] Provide default value 0 for YAML relocation addendum field
Follow up to r227318.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227422
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 29 Jan 2015 02:44:53 +0000 (02:44 +0000)]
Remove an unused private field added r227405 to fix a Clang warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227415
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 29 Jan 2015 02:34:17 +0000 (02:34 +0000)]
[LPM] Try again to appease powerpc64 in its self host. I've been unable
to get a powerpc64 host so that I can reproduce and test this, but it
only impacts that platform so trying the only other realistic option.
According to Ulrich, who debugged this initially, initial-exec is likely
to be sufficient for our needs and not subject to this bug. Will watch
the build bots to see.
If this doesn't work, I'll be forced to cut a really ugly pthread-based
approach into the primary user (our stack trace printing) as that user
cannot use the ThreadLocal implementation due to lifetime issues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227414
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 29 Jan 2015 01:29:22 +0000 (01:29 +0000)]
[LPM] Fix an "obvious" typo from r227411. Really sorry for the noise.
Too many cases to compile everything quickly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227412
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 29 Jan 2015 01:23:04 +0000 (01:23 +0000)]
[LPM] Clean up the use of TLS in pretty stack trace and disable it
entirely when threads are not enabled. This should allow anyone who
needs to bootstrap or cope with a host loader without TLS support to
limp along without threading support.
There is still some bug in the PPC TLS stuff that is not worked around.
I'm getting access to a machine to reproduce and debug this further.
There is some chance that I'll have to add a terrible workaround for
PPC.
There is also some problem with iOS, but I have no ability to really
evaluate what the issue is there. I'm leaving it to folks maintaining
that platform to suggest a path forward -- personally I don't see any
useful path forward that supports threading in LLVM but does so without
support for *very basic* TLS. Note that we don't need more than some
pointers, and we don't need constructors, destructors, or any of the
other fanciness which remains widely unimplemented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227411
91177308-0d34-0410-b5e6-
96231b3b80d8