oota-llvm.git
9 years agoUse common range handling for the CU's ranges
David Blaikie [Mon, 3 Nov 2014 23:10:59 +0000 (23:10 +0000)]
Use common range handling for the CU's ranges

This generalizes the range handling for ranges in both the skeleton and
full unit, laying the foundation for the addition of more ranges (rather
than just the CU's special case) in the skeleton CU with fission+gmlt.

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

9 years ago[AArch64] Make function processLogicalImmediate more efficient. NFC.
Akira Hatanaka [Mon, 3 Nov 2014 23:06:31 +0000 (23:06 +0000)]
[AArch64] Make function processLogicalImmediate more efficient. NFC.

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

9 years agoHandle ASAN_OPTIONS and UBSAN_OPTIONS in TestingConfig.py
Rafael Espindola [Mon, 3 Nov 2014 23:04:56 +0000 (23:04 +0000)]
Handle ASAN_OPTIONS and UBSAN_OPTIONS in TestingConfig.py

Currently they are passed to tests of llvm itself, but not, for example, lld.

With this patch the options are visible in every test.

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

9 years agorefactor duplicated code. NFC.
Rafael Espindola [Mon, 3 Nov 2014 22:17:49 +0000 (22:17 +0000)]
refactor duplicated code. NFC.

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

9 years agoInstCombine: Remove infinite loop caused by FoldOpIntoPhi
David Majnemer [Mon, 3 Nov 2014 21:55:12 +0000 (21:55 +0000)]
InstCombine: Remove infinite loop caused by FoldOpIntoPhi

FoldOpIntoPhi could create an infinite loop if the PHI could potentially
reach a BB it was considering inserting instructions into.  The
instructions it would insert would eventually lead to other combines
firing which would, again, lead to FoldOpIntoPhi firing.

The solution is to handicap FoldOpIntoPhi so that it doesn't attempt to
insert instructions that the PHI might reach.

This fixes PR21377.

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

9 years agoPush the CURangeList down into the skeleton CU (where available) rather than the...
David Blaikie [Mon, 3 Nov 2014 21:52:56 +0000 (21:52 +0000)]
Push the CURangeList down into the skeleton CU (where available) rather than the full CU

So that it may be shared between skeleton/full compile unit, for CU
ranges and other ranges to be added for fission+gmlt.

(at some point we might want some kind of object shared between the
skeleton and full compile units for all those things we only want one of
in that scope, rather than having the full unit always look through to
the skeleton... - alternatively, we might be able to have the skeleton
pointer (or another, separate pointer) point to the skeleton or to the
unit itself in non-fission, so we don't have to special case its
absence)

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

9 years ago[X86] Add debug print name for X86ISD::[US]MUL8. NFC-ish.
Ahmed Bougacha [Mon, 3 Nov 2014 21:25:18 +0000 (21:25 +0000)]
[X86] Add debug print name for X86ISD::[US]MUL8. NFC-ish.

The opcodes were added in r220516, but I forgot to add the print names.

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

9 years ago[lit] Forward LD_PRELOAD to tests.
Rafael Espindola [Mon, 3 Nov 2014 21:24:43 +0000 (21:24 +0000)]
[lit] Forward LD_PRELOAD to tests.

With this patch I can use asan to test the gold plugin without having
to build gold itself with asan.

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

9 years agoAdd DwarfCompileUnit::BaseAddress to track the base address used by relative addressi...
David Blaikie [Mon, 3 Nov 2014 21:15:30 +0000 (21:15 +0000)]
Add DwarfCompileUnit::BaseAddress to track the base address used by relative addressing in debug_ranges and debug_loc

This is one of a few steps to generalize range handling to include the
CU range (thus the CU's range list will be moved into the range list
list, losing track of the base address in the process), which means
generalizing ranges from both the skeleton and full unit under fission.

And... then I can used that generalized support for ranges in
fission+gmlt where there'll be a bunch more ranges in the skeleton.

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

9 years ago[ARM, inline-asm] Fix ARMTargetLowering::getRegForInlineAsmConstraint to return
Akira Hatanaka [Mon, 3 Nov 2014 20:37:04 +0000 (20:37 +0000)]
[ARM, inline-asm] Fix ARMTargetLowering::getRegForInlineAsmConstraint to return
register class tGPRRegClass if the target is thumb1.

This commit fixes a crash that occurs during register allocation which was
triggered when a virtual register defined by an inline-asm instruction had to
be spilled.

rdar://problem/18740489

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

9 years agoMSVC requires redeclarations to repeat noexcept
Reid Kleckner [Mon, 3 Nov 2014 20:35:30 +0000 (20:35 +0000)]
MSVC requires redeclarations to repeat noexcept

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

9 years ago[X86] 8bit divrem: Improve codegen for AH register extraction.
Ahmed Bougacha [Mon, 3 Nov 2014 20:26:35 +0000 (20:26 +0000)]
[X86] 8bit divrem: Improve codegen for AH register extraction.

For 8-bit divrems where the remainder is used, we used to generate:
    divb  %sil
    shrw  $8, %ax
    movzbl  %al, %eax

That was to avoid an H-reg access, which is problematic mainly because
it isn't possible in REX-prefixed instructions.

This patch optimizes that to:
    divb  %sil
    movzbl  %ah, %eax

To do that, we explicitly extend AH, and extract the L-subreg in the
resulting register.  The extension is done using the NOREX variants of
MOVZX.  To support signed operations, MOVSX_NOREX is also added.
Further, this introduces a new SDNode type, [us]divrem_ext_hreg, which is
then lowered to a sequence containing a single zext (rather than 2).

Differential Revision: http://reviews.llvm.org/D6064

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

9 years agoEarlyCSE should ignore calls to @llvm.assume
Hal Finkel [Mon, 3 Nov 2014 20:21:32 +0000 (20:21 +0000)]
EarlyCSE should ignore calls to @llvm.assume

EarlyCSE uses a simple generation scheme for handling memory-based
dependencies, and calls to @llvm.assume (which are marked as writing to memory
to ensure the preservation of control dependencies) disturb that scheme
unnecessarily. Skipping calls to @llvm.assume is legal, and the alternative
(adding AA calls in EarlyCSE) is likely undesirable (we have GVN for that).

Fixes PR21448.

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

9 years agoReapply: R600: Make sure to inline all internal functions
Tom Stellard [Mon, 3 Nov 2014 19:49:05 +0000 (19:49 +0000)]
Reapply: R600: Make sure to inline all internal functions

Function calls aren't supported yet.

This was reverted due to build breakages, which should be fixed now.

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

9 years ago[Reassociate] Canonicalize negative constants out of expressions.
Chad Rosier [Mon, 3 Nov 2014 19:11:30 +0000 (19:11 +0000)]
[Reassociate] Canonicalize negative constants out of expressions.

This gives CSE/GVN more options to eliminate duplicate expressions.
This is a follow up patch to http://reviews.llvm.org/D4904.

http://reviews.llvm.org/D5363

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

9 years agoRelax the LLVM_NOEXCEPT _MSC_VER version check back to 1900
Reid Kleckner [Mon, 3 Nov 2014 18:22:42 +0000 (18:22 +0000)]
Relax the LLVM_NOEXCEPT _MSC_VER version check back to 1900

Unconditional noexcept support was added in the VS 2013 Nov CTP. Given
that there have been three CTPs since then, I don't think we need
careful macro magic to target that specific tech preview. Instead,
target the major release version number of 1900, which corresponds to
the as-yet unreleased VS "14".

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

9 years agoNormally an 'optnone' function goes through fast-isel, which does not
Paul Robinson [Mon, 3 Nov 2014 18:19:26 +0000 (18:19 +0000)]
Normally an 'optnone' function goes through fast-isel, which does not
call DAGCombiner. But we ran into a case (on Windows) where the
calling convention causes argument lowering to bail out of fast-isel,
and we end up in CodeGenAndEmitDAG() which does run DAGCombiner.
So, we need to make DAGCombiner check for 'optnone' after all.

Commit includes the test that found this, plus another one that got
missed in the original optnone work.

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

9 years agoIR: MDNode => Value: Instruction::getAllMetadataOtherThanDebugLoc()
Duncan P. N. Exon Smith [Mon, 3 Nov 2014 18:13:57 +0000 (18:13 +0000)]
IR: MDNode => Value: Instruction::getAllMetadataOtherThanDebugLoc()

Change `Instruction::getAllMetadataOtherThanDebugLoc()` from a vector of
`MDNode` to one of `Value`.  Part of PR21433.

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

9 years agoRemove the cortex-a9-mp CPU.
Charlie Turner [Mon, 3 Nov 2014 17:38:00 +0000 (17:38 +0000)]
Remove the cortex-a9-mp CPU.

This CPU definition is redundant. The Cortex-A9 is defined as
supporting multiprocessing extensions. Remove its definition and
update appropriate tests.

LLVM defines both a cortex-a9 CPU and a cortex-a9-mp CPU. The only
difference between the two CPU definitions in ARM.td is that
cortex-a9-mp contains the feature FeatureMP for multiprocessing
extensions.

This is redundant since the Cortex-A9 is defined as having
multiprocessing extensions in the TRMs. armcc also defines the
Cortex-A9 as having multiprocessing extensions by default.

Change-Id: Ifcadaa6c322be0a33d9d2a39cfdd7da1d75981a7

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

9 years agoCleanup some unused or trivial functions in DwarfCompileUnit
David Blaikie [Mon, 3 Nov 2014 17:10:38 +0000 (17:10 +0000)]
Cleanup some unused or trivial functions in DwarfCompileUnit

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

9 years agoSink DwarfUnit::CURanges into DwarfCompileUnit
David Blaikie [Mon, 3 Nov 2014 16:40:43 +0000 (16:40 +0000)]
Sink DwarfUnit::CURanges into DwarfCompileUnit

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

9 years ago[AArch64] Fix miscompile of comparison with 0xffffffffffffffff
Oliver Stannard [Mon, 3 Nov 2014 15:28:40 +0000 (15:28 +0000)]
[AArch64] Fix miscompile of comparison with 0xffffffffffffffff

Some literals in the AArch64 backend had 15 'f's rather than 16, causing
comparisons with a constant 0xffffffffffffffff to be miscompiled.

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

9 years agoHandle ctor/init_array initialization.
Sid Manning [Mon, 3 Nov 2014 14:56:05 +0000 (14:56 +0000)]
Handle ctor/init_array initialization.

Hexagon was not calling InitializeELF and could not select between
ctors and init_array.

Phabricator revision: http://reviews.llvm.org/D6061

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

9 years agoMerge the directive-eabi_attribute.s and directive-eabi_attribute-2.s tests.
Charlie Turner [Mon, 3 Nov 2014 14:52:00 +0000 (14:52 +0000)]
Merge the directive-eabi_attribute.s and directive-eabi_attribute-2.s tests.

test/MC/ARM/directive-eabi_attribute.s had gotten out-of-sync with
test/MC/ARM/directive-eabi_attribute-2.s. The former tests the encoding of
build attributes in object files, and the latter the encoding in assembly
files. Since both these tests need to be updated at the same time, it makes
sense to combine them into a single test. The object file encodings are being
checked against the ouput of -arm-attributes rather than by direct byte
comparisons which makes for easier reading.

Change-Id: I0075de506ae5626fb2fa235383fe5ce6a65a15a9

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

9 years agoAdd CRLF support to LineIterator.
Rafael Espindola [Mon, 3 Nov 2014 14:09:47 +0000 (14:09 +0000)]
Add CRLF support to LineIterator.

The MRI scripts have to work with CRLF, and in general it is probably
a good idea to support this in a core utility like LineIterator.

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

9 years agoRevert r221150, as it broke sanitizer tests
Oliver Stannard [Mon, 3 Nov 2014 12:19:03 +0000 (12:19 +0000)]
Revert r221150, as it broke sanitizer tests

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

9 years agoEmit .eh_frame with relocations to functions, rather than sections
Oliver Stannard [Mon, 3 Nov 2014 12:02:51 +0000 (12:02 +0000)]
Emit .eh_frame with relocations to functions, rather than sections

When LLVM emits DWARF call frame information, it currently creates a local,
section-relative symbol in the code section, which is pointed to by a
relocation on the .eh_frame section. However, for C++ we emit some functions in
section groups, and the SysV ABI has some rules to make it easier to remove
these sections
(http://www.sco.com/developers/gabi/latest/ch4.sheader.html#section_group_rules):

  A symbol table entry with STB_LOCAL binding that is defined relative to one
  of a group's sections, and that is contained in a symbol table section that is
  not part of the group, must be discarded if the group members are discarded.
  References to this symbol table entry from outside the group are not allowed.

This means that we need to use the function symbol for the relocation, not a
temporary symbol.

There was a comment in the code claiming that the local symbol was used to
avoid creating a relocation, but a relocation must be created anyway as the
code and CFI are in different sections.

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

9 years ago[OCaml] Fix mismatched CAMLparam/CAMLreturn.
Peter Zotov [Mon, 3 Nov 2014 11:47:14 +0000 (11:47 +0000)]
[OCaml] Fix mismatched CAMLparam/CAMLreturn.

Also, revert r221142--it was an incorrect fix to this bug
which fixed tests by accident.

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

9 years agoTest commit.
Charlie Turner [Mon, 3 Nov 2014 10:58:05 +0000 (10:58 +0000)]
Test commit.

Fixes two typos.

Change-Id: I129f647de8933e1d8f0dc9941bcb91602edce7e2

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

9 years agoCMake: Add libm to list of system libs printed by llvm-config.
Peter Collingbourne [Mon, 3 Nov 2014 10:38:26 +0000 (10:38 +0000)]
CMake: Add libm to list of system libs printed by llvm-config.

This is required by the interpreter library, and also matches the autoconf
behavior.

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

9 years ago[mips] Remove unused prototype and variable. NFC.
Daniel Sanders [Mon, 3 Nov 2014 10:14:57 +0000 (10:14 +0000)]
[mips] Remove unused prototype and variable. NFC.

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

9 years ago[OCaml] Add -g on DEBUG_SYMBOLS=1, not ENABLE_OPTIMIZED.
Peter Zotov [Mon, 3 Nov 2014 10:06:19 +0000 (10:06 +0000)]
[OCaml] Add -g on DEBUG_SYMBOLS=1, not ENABLE_OPTIMIZED.

Thanks echristo for pointing this out.

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

9 years agoUnbreak build.
Peter Zotov [Mon, 3 Nov 2014 09:58:41 +0000 (09:58 +0000)]
Unbreak build.

A bug in lit.cfg was introduced in r221137.

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

9 years ago[OCaml] Don't use deprecated non-caml_namespaced functions.
Peter Zotov [Mon, 3 Nov 2014 09:51:47 +0000 (09:51 +0000)]
[OCaml] Don't use deprecated non-caml_namespaced functions.

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

9 years ago[OCaml] Initialize local roots prior to raising.
Peter Zotov [Mon, 3 Nov 2014 09:51:44 +0000 (09:51 +0000)]
[OCaml] Initialize local roots prior to raising.

On 4.02, the OCaml unwinder otherwise gets confused and segfaults.

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

9 years ago[OCaml] Core package should depend on LLVMTransformUtils for LLVMCloneModule.
Peter Zotov [Mon, 3 Nov 2014 09:51:41 +0000 (09:51 +0000)]
[OCaml] Core package should depend on LLVMTransformUtils for LLVMCloneModule.

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

9 years ago[OCaml] Fix ocamlc -custom builds when configured as --enable-shared.
Peter Zotov [Mon, 3 Nov 2014 09:51:37 +0000 (09:51 +0000)]
[OCaml] Fix ocamlc -custom builds when configured as --enable-shared.

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

9 years ago[OCaml] Avoid embedding absolute paths into executables.
Peter Zotov [Mon, 3 Nov 2014 09:51:34 +0000 (09:51 +0000)]
[OCaml] Avoid embedding absolute paths into executables.

Bindings built out-of-tree, e.g. via OPAM, should append
a line to META.llvm like the following:

linkopts = "-cclib -L$libdir -cclib -Wl,-rpath,$libdir"

where $libdir is the lib/ directory where LLVM libraries are
installed.

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

9 years ago[OCaml] Don't build stub libraries twice.
Peter Zotov [Mon, 3 Nov 2014 09:51:28 +0000 (09:51 +0000)]
[OCaml] Don't build stub libraries twice.

The default Makefile.rules BUILD_ARCHIVE machinery was
unintentionally enabled.

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

9 years ago[OCaml] Run tests twice, with ocamlc and ocamlopt (if available)
Peter Zotov [Mon, 3 Nov 2014 09:50:53 +0000 (09:50 +0000)]
[OCaml] Run tests twice, with ocamlc and ocamlopt (if available)

ocamlc and ocamlopt expose a distinct set of buildsystem bugs, e.g.
only ocamlc would detect -custom or -dllib-related bugs, and as all
buildbots will have ocamlopt, these bugs will stay hidden.

This change should add no more than 30 seconds of testing time.

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

9 years ago[OCaml] META: remove exists_if(toplevel).
Peter Zotov [Mon, 3 Nov 2014 09:50:02 +0000 (09:50 +0000)]
[OCaml] META: remove exists_if(toplevel).

ocamlfind ignores the predicates in this case, making the package
unavailable for batch compilation as well.

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

9 years ago[OCaml] ExecutionEngine package should not depend on interpreter.
Peter Zotov [Mon, 3 Nov 2014 09:49:42 +0000 (09:49 +0000)]
[OCaml] ExecutionEngine package should not depend on interpreter.

Interpreter support was removed in r220957.

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

9 years agoForgot to add input file for test added in r221133
David Majnemer [Mon, 3 Nov 2014 07:58:16 +0000 (07:58 +0000)]
Forgot to add input file for test added in r221133

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

9 years agollvm-vtabledump: Handle Itanium VTables
David Majnemer [Mon, 3 Nov 2014 07:23:25 +0000 (07:23 +0000)]
llvm-vtabledump: Handle Itanium VTables

Add support in the vtable dumper for the Itanium ABI.

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

9 years agoInstCombine: Combine (X | Y) - X to (~X & Y)
David Majnemer [Mon, 3 Nov 2014 05:53:55 +0000 (05:53 +0000)]
InstCombine: Combine (X | Y) - X to (~X & Y)

This implements the transformation from (X | Y) - X to (~X & Y).

Differential Revision: http://reviews.llvm.org/D5791

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

9 years agoSink range list handling down from DwarfUnit into its only use, in DwarfCompileUnit.
David Blaikie [Mon, 3 Nov 2014 02:41:49 +0000 (02:41 +0000)]
Sink range list handling down from DwarfUnit into its only use, in DwarfCompileUnit.

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

9 years agoUse ErrorOr for the ::create factory on instrumented and sample profilers.
Diego Novillo [Mon, 3 Nov 2014 00:51:45 +0000 (00:51 +0000)]
Use ErrorOr for the ::create factory on instrumented and sample profilers.

Summary:
As discussed in
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20141027/242445.html,
the creation of reader and writer instances is better done using
ErrorOr. There are no functional changes, but several callers needed to
be adjusted.

Reviewers: bogner

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D6076

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

9 years agoR600: Don't unnecessarily repeat the register class
Matt Arsenault [Sun, 2 Nov 2014 23:46:59 +0000 (23:46 +0000)]
R600: Don't unnecessarily repeat the register class

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

9 years agoR600/SI: Use REG_SEQUENCE instead of INSERT_SUBREGs
Matt Arsenault [Sun, 2 Nov 2014 23:46:54 +0000 (23:46 +0000)]
R600/SI: Use REG_SEQUENCE instead of INSERT_SUBREGs

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

9 years agoSupport REG_SEQUENCE in tablegen.
Matt Arsenault [Sun, 2 Nov 2014 23:46:51 +0000 (23:46 +0000)]
Support REG_SEQUENCE in tablegen.

The problem is mostly that variadic output instruction
aren't handled, so it is rejected for having an inconsistent
number of operands, and then the right number of operands
isn't emitted.

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

9 years agoFix typo
Matt Arsenault [Sun, 2 Nov 2014 23:46:47 +0000 (23:46 +0000)]
Fix typo

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

9 years agoFix missing C++ mode comment
Matt Arsenault [Sun, 2 Nov 2014 23:46:44 +0000 (23:46 +0000)]
Fix missing C++ mode comment

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

9 years agoRe-commit r221056 and others with fix, "[mips] Move F128 argument handling into MipsC...
Daniel Sanders [Sun, 2 Nov 2014 16:09:29 +0000 (16:09 +0000)]
Re-commit r221056 and others with fix, "[mips] Move F128 argument handling into MipsCCState as we did for returns. NFC."

sret arguments can never originate from an f128 argument so we detect
sret arguments and push false into OriginalArgWasF128.

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

9 years agoRevert r221096 bringing back r221014 with a fix.
Rafael Espindola [Sun, 2 Nov 2014 13:28:57 +0000 (13:28 +0000)]
Revert r221096 bringing back r221014 with a fix.

The issue was that linkAppendingVarProto does the full linking job, including
deleting the old dst variable. The fix is just to call it and return early
if we have a GV with appending linkage.

original message:

    Refactor duplicated code in liking GlobalValues.

    There is quiet a bit of logic that is common to any GlobalValue but was
    duplicated for Functions, GlobalVariables and GlobalAliases.

    While at it, merge visibility even when comdats are used, fixing pr21415.

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

9 years ago[cmake] Pass -O3 when linking.
Rafael Espindola [Sun, 2 Nov 2014 12:14:22 +0000 (12:14 +0000)]
[cmake] Pass -O3 when linking.

Gold and bfd ld enable misc optimizations. lld ignores the option for now.

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

9 years agoRevert r221014: "Refactor duplicated code in liking GlobalValues."
Chandler Carruth [Sun, 2 Nov 2014 09:10:31 +0000 (09:10 +0000)]
Revert r221014: "Refactor duplicated code in liking GlobalValues."

This commit introduces heap-use-after-free detected by ASan. Here is the output
for one of several tests that detect it:

******************** TEST 'LLVM :: Linker/AppendingLinkage.ll' FAILED ********************
Command Output (stderr):
--
=================================================================
==2122==ERROR: AddressSanitizer: heap-use-after-free on address 0x60c00000b9c8 at pc 0x0000005d05d1 bp 0x7fff64ed27c0 sp 0x7fff64ed27b8
READ of size 4 at 0x60c00000b9c8 thread T0
    #0 0x5d05d0 in llvm::GlobalValue::setUnnamedAddr(bool) /usr/local/google/home/chandlerc/src/llvm/build/../include/llvm/IR/GlobalValue.h:115:35
    #1 0x69fff1 in (anonymous namespace)::ModuleLinker::linkGlobalValueProto(llvm::GlobalValue*) /usr/local/google/home/chandlerc/src/llvm/build/../lib/Linker/LinkModules.cpp:1041:5
    #2 0x697229 in (anonymous namespace)::ModuleLinker::run() /usr/local/google/home/chandlerc/src/llvm/build/../lib/Linker/LinkModules.cpp:1485:9
    #3 0x696542 in llvm::Linker::linkInModule(llvm::Module*) /usr/local/google/home/chandlerc/src/llvm/build/../lib/Linker/LinkModules.cpp:1621:10
    #4 0x4a2db7 in main /usr/local/google/home/chandlerc/src/llvm/build/../tools/llvm-link/llvm-link.cpp:116:9
    #5 0x7f4ae61e5ec4 in __libc_start_main /build/buildd/eglibc-2.19/csu/libc-start.c:287
    #6 0x41eb71 in _start (/usr/local/google/home/chandlerc/src/llvm/build/bin/llvm-link+0x41eb71)

0x60c00000b9c8 is located 72 bytes inside of 128-byte region [0x60c00000b980,0x60c00000ba00)
freed by thread T0 here:
    #0 0x4a1e6b in operator delete(void*) /usr/local/google/home/chandlerc/src/llvm/opt-build/../projects/compiler-rt/lib/asan/asan_new_delete.cc:94:3
    #1 0x5d1a7a in llvm::iplist<llvm::GlobalVariable, llvm::ilist_traits<llvm::GlobalVariable> >::erase(llvm::ilist_iterator<llvm::GlobalVariable>) /usr/local/google/home/chandlerc/src/llvm/build/../inclu
de/llvm/ADT/ilist.h:466:5
    #2 0x5d1980 in llvm::GlobalVariable::eraseFromParent() /usr/local/google/home/chandlerc/src/llvm/build/../lib/IR/Globals.cpp:204:3
    #3 0x6a8a4d in (anonymous namespace)::ModuleLinker::linkAppendingVarProto(llvm::GlobalVariable*, llvm::GlobalVariable const*) /usr/local/google/home/chandlerc/src/llvm/build/../lib/Linker/LinkModules.
cpp:980:3
    #4 0x6a7403 in (anonymous namespace)::ModuleLinker::linkGlobalVariableProto(llvm::GlobalVariable const*, llvm::GlobalValue*, bool) /usr/local/google/home/chandlerc/src/llvm/build/../lib/Linker/LinkMod
ules.cpp:1074:11
    #5 0x69ff4e in (anonymous namespace)::ModuleLinker::linkGlobalValueProto(llvm::GlobalValue*) /usr/local/google/home/chandlerc/src/llvm/build/../lib/Linker/LinkModules.cpp:1028:13
    #6 0x697229 in (anonymous namespace)::ModuleLinker::run() /usr/local/google/home/chandlerc/src/llvm/build/../lib/Linker/LinkModules.cpp:1485:9
    #7 0x696542 in llvm::Linker::linkInModule(llvm::Module*) /usr/local/google/home/chandlerc/src/llvm/build/../lib/Linker/LinkModules.cpp:1621:10
    #8 0x4a2db7 in main /usr/local/google/home/chandlerc/src/llvm/build/../tools/llvm-link/llvm-link.cpp:116:9
    #9 0x7f4ae61e5ec4 in __libc_start_main /build/buildd/eglibc-2.19/csu/libc-start.c:287

previously allocated by thread T0 here:
    #0 0x4a192b in operator new(unsigned long) /usr/local/google/home/chandlerc/src/llvm/opt-build/../projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35
    #1 0x61d85c in llvm::User::operator new(unsigned long, unsigned int) /usr/local/google/home/chandlerc/src/llvm/build/../lib/IR/User.cpp:57:19
    #2 0x6a7525 in (anonymous namespace)::ModuleLinker::linkGlobalVariableProto(llvm::GlobalVariable const*, llvm::GlobalValue*, bool) /usr/local/google/home/chandlerc/src/llvm/build/../lib/Linker/LinkMod
ules.cpp:1100:3
    #3 0x69ff4e in (anonymous namespace)::ModuleLinker::linkGlobalValueProto(llvm::GlobalValue*) /usr/local/google/home/chandlerc/src/llvm/build/../lib/Linker/LinkModules.cpp:1028:13
    #4 0x697229 in (anonymous namespace)::ModuleLinker::run() /usr/local/google/home/chandlerc/src/llvm/build/../lib/Linker/LinkModules.cpp:1485:9
    #5 0x696542 in llvm::Linker::linkInModule(llvm::Module*) /usr/local/google/home/chandlerc/src/llvm/build/../lib/Linker/LinkModules.cpp:1621:10
    #6 0x4a2db7 in main /usr/local/google/home/chandlerc/src/llvm/build/../tools/llvm-link/llvm-link.cpp:116:9
    #7 0x7f4ae61e5ec4 in __libc_start_main /build/buildd/eglibc-2.19/csu/libc-start.c:287

SUMMARY: AddressSanitizer: heap-use-after-free /usr/local/google/home/chandlerc/src/llvm/build/../include/llvm/IR/GlobalValue.h:115 llvm::GlobalValue::setUnnamedAddr(bool)
Shadow bytes around the buggy address:
  0x0c187fff96e0: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
  0x0c187fff96f0: 00 00 00 00 00 00 00 fa fa fa fa fa fa fa fa fa
  0x0c187fff9700: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fa
  0x0c187fff9710: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
  0x0c187fff9720: 00 00 00 00 00 00 00 00 fa fa fa fa fa fa fa fa
=>0x0c187fff9730: fd fd fd fd fd fd fd fd fd[fd]fd fd fd fd fd fd
  0x0c187fff9740: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
  0x0c187fff9750: fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa
  0x0c187fff9760: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c187fff9770: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
  0x0c187fff9780: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Heap right redzone:      fb
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack partial redzone:   f4
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  ASan internal:           fe
==2122==ABORTING

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

9 years agoFormatting
David Blaikie [Sun, 2 Nov 2014 08:52:37 +0000 (08:52 +0000)]
Formatting

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

9 years agoAdd DwarfUnit::isDwoUnit and use it to generalize string creation
David Blaikie [Sun, 2 Nov 2014 08:51:37 +0000 (08:51 +0000)]
Add DwarfUnit::isDwoUnit and use it to generalize string creation

Currently we only need to emit skeleton strings into the CU header and
we do this by explicitly calling "addLocalString". With gmlt-in-fission,
we'll be emitting a bunch of other strings from other codepaths where
it's not statically known that these strings will be local or not.

Introduce a virtual function to indicate whether this unit is a DWO unit
or not (I'm not sure if we have a good term for this, the
opposite/alternative to 'skeleton' unit) and use that to generalize the
string emission logic so that strings can be correctly emitted in both
the skeleton and dwo unit when in split dwarf mode.

And to demonstrate that this works, switch the existing special callers
of addLocalString in the skeleton builder to addString - and they still
work. Yay.

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

9 years agoRemove the last mention of LineTablesOnly from DwarfUnit, sinking it into DwarfCompil...
David Blaikie [Sun, 2 Nov 2014 08:18:06 +0000 (08:18 +0000)]
Remove the last mention of LineTablesOnly from DwarfUnit, sinking it into DwarfCompileUnit

This is a useful distinction/invariant/delination to make because
LineTablesOnly mode is never relevant to type units, so it's clear that
we're not doing weird line-tables-only-with-types by making this API
choice.

It also lays the foundations nicely for adding gmlt-like data to fission
skeleton CUs while limiting the effects to CUs and not TUs.

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

9 years agoSink DwarfUnit::applySubprogramAttributesToDefinition into DwarfCompileUnit
David Blaikie [Sun, 2 Nov 2014 08:09:09 +0000 (08:09 +0000)]
Sink DwarfUnit::applySubprogramAttributesToDefinition into DwarfCompileUnit

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

9 years agoUse Alias Analysis to hoist 2 loads from diamond to the common predecessor basic...
Elena Demikhovsky [Sun, 2 Nov 2014 08:03:05 +0000 (08:03 +0000)]
Use Alias Analysis to hoist 2 loads from diamond to the common predecessor basic block.
Alias Analysis allows to detect real barriers for load hoisting.

Review in http://reviews.llvm.org/D5991

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

9 years agoSink DwarfUnit::addExpr into DwarfCompileUnit
David Blaikie [Sun, 2 Nov 2014 07:11:55 +0000 (07:11 +0000)]
Sink DwarfUnit::addExpr into DwarfCompileUnit

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

9 years agoFix the build from the last commit
David Blaikie [Sun, 2 Nov 2014 07:08:12 +0000 (07:08 +0000)]
Fix the build from the last commit

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

9 years agoSink DwarfUnit::applyVariableAttributes into DwarfCompileUnit
David Blaikie [Sun, 2 Nov 2014 07:06:51 +0000 (07:06 +0000)]
Sink DwarfUnit::applyVariableAttributes into DwarfCompileUnit

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

9 years agoSink DwarfUnit::addLocationList down into DwarfCompileUnit
David Blaikie [Sun, 2 Nov 2014 07:03:19 +0000 (07:03 +0000)]
Sink DwarfUnit::addLocationList down into DwarfCompileUnit

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

9 years agoSink DwarfUnit::addComplexAddress down into DwarfCompileUnit
David Blaikie [Sun, 2 Nov 2014 06:58:44 +0000 (06:58 +0000)]
Sink DwarfUnit::addComplexAddress down into DwarfCompileUnit

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

9 years agoPush DwarfUnit::addAddress down into DwarfCompileUnit
David Blaikie [Sun, 2 Nov 2014 06:46:40 +0000 (06:46 +0000)]
Push DwarfUnit::addAddress down into DwarfCompileUnit

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

9 years agoSink DwarfUnit::addVariableAddress into DwarfCompileUnit since type units don't have...
David Blaikie [Sun, 2 Nov 2014 06:37:23 +0000 (06:37 +0000)]
Sink DwarfUnit::addVariableAddress into DwarfCompileUnit since type units don't have variables

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

9 years agoDebugInfo: Sink accelerator table lists down (GlobalNames/Types) into DwarfCompileUnit
David Blaikie [Sun, 2 Nov 2014 06:16:39 +0000 (06:16 +0000)]
DebugInfo: Sink accelerator table lists down (GlobalNames/Types) into DwarfCompileUnit

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

9 years agoAdd DwarfUnit::addGlobalType to match DwarfUnit::addGlobalName
David Blaikie [Sun, 2 Nov 2014 06:06:14 +0000 (06:06 +0000)]
Add DwarfUnit::addGlobalType to match DwarfUnit::addGlobalName

(these will shortly become virtual, with a null implementation in
DwarfUnit (since type units don't have accelerator tables in the current
schema) and the current implementation down in DwarfCompileUnit, moving
the actual maps there too)

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

9 years agoRevert r221056 and others, "[mips] Move F128 argument handling into MipsCCState as...
NAKAMURA Takumi [Sun, 2 Nov 2014 04:43:54 +0000 (04:43 +0000)]
Revert r221056 and others, "[mips] Move F128 argument handling into MipsCCState as we did for returns. NFC."

  r221056 "[mips] Move F128 argument handling into MipsCCState as we did for returns. NFC."
  r221058 "[mips] Fix unused variable warning introduced in r221056"
  r221059 "[mips] Move all ByVal handling into CCState and tablegen-erated code. NFC."
  r221061 "Renamed CCState members that appear to misspell 'Processed' as 'Proceed'. NFC."

It cuased an undefined behavior in LLVM :: CodeGen/Mips/return-vector.ll.

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

9 years agoDebugInfo: Refactor index type DIE initialization by rolling it into the accessor
David Blaikie [Sun, 2 Nov 2014 03:09:13 +0000 (03:09 +0000)]
DebugInfo: Refactor index type DIE initialization by rolling it into the accessor

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

9 years agoBe sure to initialize DwarfCompileUnit::LabelBegin now that it may be skipped in...
David Blaikie [Sun, 2 Nov 2014 02:40:26 +0000 (02:40 +0000)]
Be sure to initialize DwarfCompileUnit::LabelBegin now that it may be skipped in initSection

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

9 years agoDon't bother creating LabelBegin for .dwo units
David Blaikie [Sun, 2 Nov 2014 02:26:24 +0000 (02:26 +0000)]
Don't bother creating LabelBegin for .dwo units

This would help catch cases where we might otherwise try to reference a
dwo CU label, which would be weird - because without relocations in the
dwo file it's not generally meaningful to talk about the CU offsets
there (or, if it is, we can do so in absolute terms without using a
relocation to compute it).

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

9 years agoDocs: update va_arg example with valid x86_64 va_list type.
Tim Northover [Sun, 2 Nov 2014 01:21:51 +0000 (01:21 +0000)]
Docs: update va_arg example with valid x86_64 va_list type.

The given example was overflowing its alloca and segfaulting if actually run on
x86, so it's a good idea to provide something that works there too.

Patch by Ramkumar Ramachandra.

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

9 years agoDrop DwarfCompileUnit::getLocalLabel* in favor of just mapping through the skeleton...
David Blaikie [Sun, 2 Nov 2014 01:21:43 +0000 (01:21 +0000)]
Drop DwarfCompileUnit::getLocalLabel* in favor of just mapping through the skeleton explicitly.

Confusing to do this two different ways - I'm not too wedded to either
one, but here goes.

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

9 years agoSink DwarfUnit::LabelBegin down into DwarfCompileUnit since that's the only place...
David Blaikie [Sun, 2 Nov 2014 01:21:40 +0000 (01:21 +0000)]
Sink DwarfUnit::LabelBegin down into DwarfCompileUnit since that's the only place it's needed.

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

9 years agoUpdate test to use llvm-readobj. NFC.
Rafael Espindola [Sun, 2 Nov 2014 01:12:02 +0000 (01:12 +0000)]
Update test to use llvm-readobj. NFC.

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

9 years agoSink dwarf unit length emission down into DwarfUnit::emitHeader
David Blaikie [Sat, 1 Nov 2014 23:59:23 +0000 (23:59 +0000)]
Sink dwarf unit length emission down into DwarfUnit::emitHeader

This allows the CU label to be emitted only for compile units, as
they're the only ones that need it (so they can be referenced from
pubnames)

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

9 years agoTest 221067 in a fixed-target test so as not to fail on targets with different DWARF...
David Blaikie [Sat, 1 Nov 2014 23:50:59 +0000 (23:50 +0000)]
Test 221067 in a fixed-target test so as not to fail on targets with different DWARF encodings

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

9 years agoFix the build of the gold plugin.
Rafael Espindola [Sat, 1 Nov 2014 23:49:44 +0000 (23:49 +0000)]
Fix the build of the gold plugin.

I did the previous patch on OS X and didn't noticed the issue.

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

9 years agoInstCombine: Don't assume that m_ZExt matches an Instruction
David Majnemer [Sat, 1 Nov 2014 23:46:05 +0000 (23:46 +0000)]
InstCombine: Don't assume that m_ZExt matches an Instruction

m_ZExt might bind against a ConstantExpr instead of an Instruction.
Assuming this, using cast<Instruction>, results in InstCombine crashing.

Instead, introduce ZExtOperator to bridge both Instruction and
ConstantExpr ZExts.

This fixes PR21445.

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

9 years agoRemove test coverage added in 221067 due to it being non-portable.
David Blaikie [Sat, 1 Nov 2014 23:42:30 +0000 (23:42 +0000)]
Remove test coverage added in 221067 due to it being non-portable.

Will try to find a portable way to test this (or a fixed-target test I
can add such coverage to) shortly.

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

9 years agoRemove DwarfUnit::LabelEnd in favor of computing the length of the section directly
David Blaikie [Sat, 1 Nov 2014 23:07:14 +0000 (23:07 +0000)]
Remove DwarfUnit::LabelEnd in favor of computing the length of the section directly

This was a compile-unit specific label (unused in type units) and seems
unnecessary anyway when we can more easily directly compute the size of
the compile unit.

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

9 years agoSink DwarfUnit::SectionSym into DwarfCompileUnit as it's only needed/used there.
David Blaikie [Sat, 1 Nov 2014 20:06:28 +0000 (20:06 +0000)]
Sink DwarfUnit::SectionSym into DwarfCompileUnit as it's only needed/used there.

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

9 years agoRenamed CCState members that appear to misspell 'Processed' as 'Proceed'. NFC.
Daniel Sanders [Sat, 1 Nov 2014 19:32:23 +0000 (19:32 +0000)]
Renamed CCState members that appear to misspell 'Processed' as 'Proceed'. NFC.

Reviewers: rnk

Reviewed By: rnk

Subscribers: rnk, llvm-commits

Differential Revision: http://reviews.llvm.org/D5978

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

9 years agoMake DwarfCompileUnit::Skeleton more narrowly typed (DwarfCompileUnit* instead of...
David Blaikie [Sat, 1 Nov 2014 19:26:05 +0000 (19:26 +0000)]
Make DwarfCompileUnit::Skeleton more narrowly typed (DwarfCompileUnit* instead of DwarfUnit*) now that it's specific to DwarfCompileUnit anyway.

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

9 years ago[mips] Move all ByVal handling into CCState and tablegen-erated code. NFC.
Daniel Sanders [Sat, 1 Nov 2014 19:17:10 +0000 (19:17 +0000)]
[mips] Move all ByVal handling into CCState and tablegen-erated code. NFC.

Summary:
CCState already contains a byval implementation that is very similar to the
Mips custom code. This patch merges the custom code into the existing
common code and tablegen-erated code.

Reviewers: vmedic

Reviewed By: vmedic

Subscribers: rnk, llvm-commits

Differential Revision: http://reviews.llvm.org/D5977

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

9 years ago[mips] Fix unused variable warning introduced in r221056
Daniel Sanders [Sat, 1 Nov 2014 18:53:01 +0000 (18:53 +0000)]
[mips] Fix unused variable warning introduced in r221056

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

9 years ago[mips] Remove ByValArgInfo::Address in favour of CCValAssign::getMemLocOffset()....
Daniel Sanders [Sat, 1 Nov 2014 18:44:56 +0000 (18:44 +0000)]
[mips] Remove ByValArgInfo::Address in favour of CCValAssign::getMemLocOffset(). NFC.

Summary: ByValArgInfo is practically the same as CCState::ByValInfo now.

Reviewers: vmedic

Reviewed By: vmedic

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D5976

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

9 years ago[mips] Move F128 argument handling into MipsCCState as we did for returns. NFC.
Daniel Sanders [Sat, 1 Nov 2014 18:38:03 +0000 (18:38 +0000)]
[mips] Move F128 argument handling into MipsCCState as we did for returns. NFC.

Summary:
There are a couple more changes to make before analyzeFormalArguments can
be merged into the standard AnalyzeFormalArguments. I've had to temporarily
poke a couple holes in MipsCCState's encapsulation to save having to make
all the required changes for this merge all at once*. These will be removed
shortly.

* We must merge our ByVal argument handling with the implementation in CCState.
  This will be done over the next three patches, then the fourth will merge
  analyzeFormalArguments with AnalyzeFormalArguments.

Depends on D5967

Reviewers: vmedic

Reviewed By: vmedic

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D5969

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

9 years agoSink DwarfUnit::Skeleton down into DwarfCompileUnit
David Blaikie [Sat, 1 Nov 2014 18:18:07 +0000 (18:18 +0000)]
Sink DwarfUnit::Skeleton down into DwarfCompileUnit

Type units no longer have skeletons and it's misleading to be able to
query for a type unit's skeleton (it might incorrectly lead one to
conclude that if a unit doesn't have a skeleton it's not in a .dwo
file... ).

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

9 years ago[mips] Remove MipsCC::CCInfo. NFC.
Daniel Sanders [Sat, 1 Nov 2014 18:13:52 +0000 (18:13 +0000)]
[mips] Remove MipsCC::CCInfo. NFC.

Summary:
It's now passed in as an argument to functions that need it. Eventually
this argument will be replaced by the 'this' pointer for a MipsCCState
object.

Depends on D5966

Reviewers: vmedic

Reviewed By: vmedic

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D5967

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

9 years ago[mips] Removed MipsCC::fixedArgFn(). NFC
Daniel Sanders [Sat, 1 Nov 2014 17:44:51 +0000 (17:44 +0000)]
[mips] Removed MipsCC::fixedArgFn(). NFC

Summary:
There is one remaining trace of it in MipsCC::analyzeCallOperands() where
Mips16 might override the calling convention. This will moved into
tablegen-erated code later.

Depends on D5965

Reviewers: vmedic

Reviewed By: vmedic

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D5966

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

9 years ago[tablegen] Add CustomCallingConv and use it to tablegen-erate the outermost parts...
Daniel Sanders [Sat, 1 Nov 2014 17:38:22 +0000 (17:38 +0000)]
[tablegen] Add CustomCallingConv and use it to tablegen-erate the outermost parts of the Mips O32 implementation

Summary:
CustomCallingConv is simply a CallingConv that tablegen should not generate the
implementation for. It allows regular CallingConv's to delegate to these custom
functions. This is (currently) necessary for Mips and we cannot use CCCustom
without having to adapt to the different API that CCCustom uses.

This brings us a bit closer to being able to remove
MipsCC::analyzeCallOperands and MipsCC::analyzeFormalArguments in favour of
the common implementation.

No functional change to the targets.

Depends on D3341

Reviewers: vmedic

Reviewed By: vmedic

Subscribers: vmedic, llvm-commits

Differential Revision: http://reviews.llvm.org/D5965

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

9 years agoSink DwarfDebug::AbstractSPDies down into DwarfFile
David Blaikie [Sat, 1 Nov 2014 17:21:26 +0000 (17:21 +0000)]
Sink DwarfDebug::AbstractSPDies down into DwarfFile

This is the first big step to allowing gmlt-like inline scope
information in the skeleton CU. While this commit doesn't change the
functionality, it's only a small step to call
"constructAbstractSubprogramDIE" on both the InfoHolder and the
SkeletonHolder (when in use) and that will at least create the abstract
SP dies in that case, though still not creating the other subprograms.

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

9 years agoRemove redundant calls to isMaterializable.
Rafael Espindola [Sat, 1 Nov 2014 16:46:18 +0000 (16:46 +0000)]
Remove redundant calls to isMaterializable.

This removes calls to isMaterializable in the following cases:

* It was redundant with a call to isDeclaration now that isDeclaration returns
  the correct answer for materializable functions.
* It was followed by a call to Materialize. Just call Materialize and check EC.

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

9 years agoRevert r221048 - Test commit
Daniel Sanders [Sat, 1 Nov 2014 16:08:03 +0000 (16:08 +0000)]
Revert r221048 - Test commit

It seems I can't commit unless $DBUS_SESSION_BUS_ADDRESS is set correctly and
it is not set for ssh sessions.

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

9 years agoTest commit
Daniel Sanders [Sat, 1 Nov 2014 16:00:40 +0000 (16:00 +0000)]
Test commit

Added some whitespace to debug some authentication issues I'm having.

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

9 years ago[JIT] Fix some more missing endian conversions in RuntimeDyld
Daniel Sanders [Sat, 1 Nov 2014 15:52:31 +0000 (15:52 +0000)]
[JIT] Fix some more missing endian conversions in RuntimeDyld

Summary: This fixes MachO_i386_eh_frame.s on a big-endian Mips host.

Reviewers: lhames

Reviewed By: lhames

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D6019

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