platform/upstream/llvm.git
9 years ago[x86] Teach my test updating script about another quirk of the printed
Chandler Carruth [Sun, 15 Feb 2015 00:08:01 +0000 (00:08 +0000)]
[x86] Teach my test updating script about another quirk of the printed
asm and port the mmx vector shuffle test to it.

Not thrilled with how it handles the stack manipulation logic, but I'm
much less bothered by that than I am by updating the test manually. =]
If anyone wants to teach the test checks management script about stack
adjustment patterns, that'd be cool too.

llvm-svn: 229268

9 years ago[X86][XOP] Enable commutation for XOP instructions
Simon Pilgrim [Sat, 14 Feb 2015 22:40:46 +0000 (22:40 +0000)]
[X86][XOP] Enable commutation for XOP instructions

Patch to allow XOP instructions (integer comparison and integer multiply-add) to be commuted. The comparison instructions sometimes require the compare mode to be flipped but the remaining instructions can use default commutation modes.

This patch also sets the SSE domains of all the XOP instructions.

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

llvm-svn: 229267

9 years ago[X86] Improve parsing support AVX/SSE floating point compare instruction mnemonic...
Craig Topper [Sat, 14 Feb 2015 21:54:03 +0000 (21:54 +0000)]
[X86] Improve parsing support AVX/SSE floating point compare instruction mnemonic aliases. They'll now print with the alias the parser received instead of converting to the explicit immediate form.

llvm-svn: 229266

9 years agoInstCombine: propagate deref via new addDereferenceableAttr
Ramkumar Ramachandra [Sat, 14 Feb 2015 19:37:54 +0000 (19:37 +0000)]
InstCombine: propagate deref via new addDereferenceableAttr

The "dereferenceable" attribute cannot be added via .addAttribute(),
since it also expects a size in bytes. AttrBuilder#addAttribute or
AttributeSet#addAttribute is wrapped by classes Function, InvokeInst,
and CallInst. Add corresponding wrappers to
AttrBuilder#addDereferenceableAttr.

Having done this, propagate the dereferenceable attribute via
gc.relocate, adding a test to exercise it. Note that -datalayout is
required during execution over and above -instcombine, because
InstCombine only optionally requires DataLayoutPass.

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

llvm-svn: 229265

9 years agoReplace snprintf with a Twine. NFC.
Benjamin Kramer [Sat, 14 Feb 2015 18:19:55 +0000 (18:19 +0000)]
Replace snprintf with a Twine. NFC.

llvm-svn: 229264

9 years agotsan: fix build
Dmitry Vyukov [Sat, 14 Feb 2015 16:14:10 +0000 (16:14 +0000)]
tsan: fix build

Revision 229127 introduced a bug:
zero value is not OK for trace headers,
because stack0 needs constructor call.
Instead unmap the unused part of trace after
all ctors have been executed.

llvm-svn: 229263

9 years agotsan: always subtract one from program counters
Dmitry Vyukov [Sat, 14 Feb 2015 16:06:22 +0000 (16:06 +0000)]
tsan: always subtract one from program counters

Go has a pending change to pass proper PCs to tsan:
https://go-review.googlesource.com/#/c/4902/
So now we can always subtract one from PCs.

llvm-svn: 229262

9 years agoTarget: Canonicalize access to function attributes, NFC
Duncan P. N. Exon Smith [Sat, 14 Feb 2015 15:36:52 +0000 (15:36 +0000)]
Target: Canonicalize access to function attributes, NFC

Canonicalize access to function attributes to use the simpler API.

getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind)
  => getFnAttribute(Kind)

getAttributes().hasAttribute(AttributeSet::FunctionIndex, Kind)
  => hasFnAttribute(Kind)

llvm-svn: 229261

9 years agoNVPTX: Canonicalize access to function attributes, NFC
Duncan P. N. Exon Smith [Sat, 14 Feb 2015 15:35:43 +0000 (15:35 +0000)]
NVPTX: Canonicalize access to function attributes, NFC

Canonicalize access to function attributes to use the simpler API.

getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind)
  => getFnAttribute(Kind)

getAttributes().hasAttribute(AttributeSet::FunctionIndex, Kind)
  => hasFnAttribute(Kind)

llvm-svn: 229260

9 years ago[optnone] Skip pass Constant Hoisting on optnone functions.
Andrea Di Biagio [Sat, 14 Feb 2015 15:11:48 +0000 (15:11 +0000)]
[optnone] Skip pass Constant Hoisting on optnone functions.

Added test CodeGen/X86/constant-hoisting-optnone.ll to verify that
pass Constant Hoisting is not run on optnone functions.

llvm-svn: 229258

9 years ago[X86] Ensure integer domain on scalar load/store stack folding tests. NFC
Simon Pilgrim [Sat, 14 Feb 2015 14:10:44 +0000 (14:10 +0000)]
[X86] Ensure integer domain on scalar load/store stack folding tests. NFC

llvm-svn: 229257

9 years agoLine ending fix. NFC.
Simon Pilgrim [Sat, 14 Feb 2015 13:27:53 +0000 (13:27 +0000)]
Line ending fix. NFC.

llvm-svn: 229256

9 years agoItaniumMangle: Correctly mangle <base-unresolved-name>
David Majnemer [Sat, 14 Feb 2015 13:23:54 +0000 (13:23 +0000)]
ItaniumMangle: Correctly mangle <base-unresolved-name>

We had two bugs:
- We were missing the "on" prefix for unresolved operators.
- We didn't handle the mangling of destructors at all.

This fixes PR22584.

llvm-svn: 229255

9 years agoAdd getSize() to the SCoP class.
Johannes Doerfert [Sat, 14 Feb 2015 12:13:17 +0000 (12:13 +0000)]
Add getSize() to the SCoP class.

llvm-svn: 229254

9 years agoDo not try to optimize empty SCoPs.
Johannes Doerfert [Sat, 14 Feb 2015 12:02:24 +0000 (12:02 +0000)]
Do not try to optimize empty SCoPs.

llvm-svn: 229253

9 years agoOveraproximate divisions in for the alias checks.
Johannes Doerfert [Sat, 14 Feb 2015 12:00:06 +0000 (12:00 +0000)]
Overaproximate divisions in for the alias checks.

  Alias checks might become costly if there are divisions that complicate the
  description of the accessed locations. By overaproximating them we get fairly
  accurate results without the huge compile time cost.

llvm-svn: 229252

9 years ago[gold] Consolidate the gold plugin options and actually search for
Chandler Carruth [Sat, 14 Feb 2015 09:43:57 +0000 (09:43 +0000)]
[gold] Consolidate the gold plugin options and actually search for
a gold binary explicitly. Substitute this binary into the tests rather
than just directly executing the 'ld' binary.

This should allow folks to inject a cross compiling gold binary, or in
my case to use a gold binary built and installed somewhere other than
/usr/bin/ld. It should also allow the tests to find 'ld.gold' so that
things work even if gold isn't the default on the system.

I've only stubbed out support in the makefile to preserve the existing
behavior with none of the fancy logic. If someone else wants to add
logic here, they're welcome to do so.

llvm-svn: 229251

9 years agoRemove a variable only used in an assert and sink its initializer into
Chandler Carruth [Sat, 14 Feb 2015 09:14:44 +0000 (09:14 +0000)]
Remove a variable only used in an assert and sink its initializer into
the assert. Fixes -Wunused-variable on non-asserts builds.

llvm-svn: 229250

9 years agoBreak some test. Revert until I got a proper fix
Jean-Daniel Dupas [Sat, 14 Feb 2015 09:10:25 +0000 (09:10 +0000)]
Break some test. Revert until I got a proper fix

llvm-svn: 229249

9 years agoBack out two accidental changes that snuck in with r229245. Sorry these
Chandler Carruth [Sat, 14 Feb 2015 09:05:58 +0000 (09:05 +0000)]
Back out two accidental changes that snuck in with r229245. Sorry these
snuck in, they weren't ready for prime time and had *nothing* to do
with that commit.

llvm-svn: 229248

9 years ago[lit] Make the gold plugin support testing work with a python3
Chandler Carruth [Sat, 14 Feb 2015 09:05:56 +0000 (09:05 +0000)]
[lit] Make the gold plugin support testing work with a python3
interpreter. Seems that's a better path than pinning to python2.7.

Thanks to Justin for prodding me toward a fix. =]

llvm-svn: 229247

9 years agoUpdate ARM and x86 ArchHandler to match 64bits counterparts. NFC
Jean-Daniel Dupas [Sat, 14 Feb 2015 08:34:37 +0000 (08:34 +0000)]
Update ARM and x86 ArchHandler to match 64bits counterparts. NFC

Summary:
Define an explicit type for arch specific reference kind and use it in switch statement to make the compiler emit warnings if some case is not cover.
It will help to catch such errors when we add new mach-o reference kind.

Reviewers: shankarke, kledzik

Reviewed By: shankarke

Subscribers: shankarke, aemerson, llvm-commits

Projects: #lld

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

llvm-svn: 229246

9 years agoRevert r229224: Make the 'llvm-lit' utility defend against a system where Python3
Chandler Carruth [Sat, 14 Feb 2015 07:11:25 +0000 (07:11 +0000)]
Revert r229224: Make the 'llvm-lit' utility defend against a system where Python3

Apparantly python2.7 also doesn't work. Awesome.

llvm-svn: 229245

9 years ago[lit] Make the 'llvm-lit' utility defend against a system where Python3
Chandler Carruth [Sat, 14 Feb 2015 07:05:15 +0000 (07:05 +0000)]
[lit] Make the 'llvm-lit' utility defend against a system where Python3
is the default.

The lit.cfg files are not all valid Python3 and I've no idea if anyone
is really prepared to update them. The easiest way I know of to ensure
that this script uses Python 2 is to use 'python2.7' in the command. Mac
and Linux are definitely fine with this and I think other platforms will
be as well, but if anyone struggles with this set up and has better
ideas, let me know.

llvm-svn: 229244

9 years ago[modules] Try harder to stop DebugInfo/PDB/DIA being built if not available.
Richard Smith [Sat, 14 Feb 2015 05:54:56 +0000 (05:54 +0000)]
[modules] Try harder to stop DebugInfo/PDB/DIA being built if not available.

llvm-svn: 229243

9 years agoMake a reference const. No behavior change.
Nico Weber [Sat, 14 Feb 2015 05:47:01 +0000 (05:47 +0000)]
Make a reference const. No behavior change.

llvm-svn: 229242

9 years agoRevise the implementation logic of sized deallocation: Do not automatically generate...
Larisse Voufo [Sat, 14 Feb 2015 05:42:57 +0000 (05:42 +0000)]
Revise the implementation logic of sized deallocation: Do not automatically generate weak definitions of the sized operator delete (in terms of unsized operator delete). Instead, provide the funcitonality via a new compiler flag, -fdef-sized-delete.
The current implementation causes link-time ODR violations when the delete symbols are exported into the dynamic table.

llvm-svn: 229241

9 years ago[modules] Accept //-style comments in module maps on purpose rather than by
Richard Smith [Sat, 14 Feb 2015 05:32:00 +0000 (05:32 +0000)]
[modules] Accept //-style comments in module maps on purpose rather than by
accident, and accept them even when they begin '//*'.

llvm-svn: 229240

9 years agoR600/SI: Implement correct f64 fdiv
Matt Arsenault [Sat, 14 Feb 2015 04:30:08 +0000 (04:30 +0000)]
R600/SI: Implement correct f64 fdiv

This version passes the OpenCL conformance test.

llvm-svn: 229239

9 years agoR600/SI: Use complex operand folding for div_scale
Matt Arsenault [Sat, 14 Feb 2015 04:24:28 +0000 (04:24 +0000)]
R600/SI: Use complex operand folding for div_scale

llvm-svn: 229238

9 years agoR600/SI: Add tests for div_fmas with inline immediate operands
Matt Arsenault [Sat, 14 Feb 2015 04:22:02 +0000 (04:22 +0000)]
R600/SI: Add tests for div_fmas with inline immediate operands

llvm-svn: 229237

9 years agoR600/SI: Fix implicit vcc operand to v_div_fmas_*
Matt Arsenault [Sat, 14 Feb 2015 04:22:00 +0000 (04:22 +0000)]
R600/SI: Fix implicit vcc operand to v_div_fmas_*

This should allow finally fixing the f64 fdiv implementation.

Test is disabled for VI since there seems to be a problem with one
of the buffer load instructions on it.

llvm-svn: 229236

9 years agoR600/SI: Fix schedule model for v_div_scale_{f32|f64}
Matt Arsenault [Sat, 14 Feb 2015 04:03:18 +0000 (04:03 +0000)]
R600/SI: Fix schedule model for v_div_scale_{f32|f64}

llvm-svn: 229235

9 years agoR600/SI: Really fix size of VReg_1
Matt Arsenault [Sat, 14 Feb 2015 03:54:32 +0000 (03:54 +0000)]
R600/SI: Really fix size of VReg_1

llvm-svn: 229234

9 years agoR600/SI: Rename encoding field to match docs for VOP3b
Matt Arsenault [Sat, 14 Feb 2015 03:54:29 +0000 (03:54 +0000)]
R600/SI: Rename encoding field to match docs for VOP3b

llvm-svn: 229233

9 years agollvm-pdbdump: Only dump whitelisted global symbols.
Zachary Turner [Sat, 14 Feb 2015 03:54:28 +0000 (03:54 +0000)]
llvm-pdbdump: Only dump whitelisted global symbols.

Dumping the global scope contains a lot of very uninteresting
things and is generally polluted with a lot of random junk.
Furthermore, it dumps values unsorted, making it hard to read.
This patch dumps known interesting types only, and as a side
effect sorts the list by symbol type.

llvm-svn: 229232

9 years agollvm-pdbdump: Re-order header files according to LLVM style guide.
Zachary Turner [Sat, 14 Feb 2015 03:53:56 +0000 (03:53 +0000)]
llvm-pdbdump: Re-order header files according to LLVM style guide.

llvm-svn: 229231

9 years agoR600/SI: Fix not encoding src2 for v_div_scale_{f32|f64}
Matt Arsenault [Sat, 14 Feb 2015 03:40:35 +0000 (03:40 +0000)]
R600/SI: Fix not encoding src2 for v_div_scale_{f32|f64}

This apparently got lost in the VI changes.

llvm-svn: 229230

9 years agoUpdate cxx_dr_status to cover dr1748 and add test.
Richard Smith [Sat, 14 Feb 2015 03:38:31 +0000 (03:38 +0000)]
Update cxx_dr_status to cover dr1748 and add test.

llvm-svn: 229229

9 years agoR600/SI: Fix VOP3b encoding on VI
Matt Arsenault [Sat, 14 Feb 2015 03:02:23 +0000 (03:02 +0000)]
R600/SI: Fix VOP3b encoding on VI

llvm-svn: 229228

9 years agoR600/SI: Fix phys reg copies in SIFoldOperands
Matt Arsenault [Sat, 14 Feb 2015 02:55:57 +0000 (02:55 +0000)]
R600/SI: Fix phys reg copies in SIFoldOperands

llvm-svn: 229227

9 years agoR600/SI: Fix copies from SGPR to VCC
Matt Arsenault [Sat, 14 Feb 2015 02:55:56 +0000 (02:55 +0000)]
R600/SI: Fix copies from SGPR to VCC

This shows up without optimizations when vcc is required
to be used.

llvm-svn: 229226

9 years agoR600/SI: Add hack to copy from a VGPR to VCC
Matt Arsenault [Sat, 14 Feb 2015 02:55:54 +0000 (02:55 +0000)]
R600/SI: Add hack to copy from a VGPR to VCC

This hopefully should be fixed when VReg_1 is removed.

llvm-svn: 229225

9 years agoPowerPC: Canonicalize access to function attributes, NFC
Duncan P. N. Exon Smith [Sat, 14 Feb 2015 02:54:07 +0000 (02:54 +0000)]
PowerPC: Canonicalize access to function attributes, NFC

Canonicalize access to function attributes to use the simpler API.

getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind)
  => getFnAttribute(Kind)

getAttributes().hasAttribute(AttributeSet::FunctionIndex, Kind)
  => hasFnAttribute(Kind)

llvm-svn: 229224

9 years agoR600/SI: Fix size of VReg_1
Matt Arsenault [Sat, 14 Feb 2015 02:51:44 +0000 (02:51 +0000)]
R600/SI: Fix size of VReg_1

This is really a 32-bit register, if we try to check the size of it,
we want 32-bits.

llvm-svn: 229223

9 years agoR600: Canonicalize access to function attributes, NFC
Duncan P. N. Exon Smith [Sat, 14 Feb 2015 02:45:45 +0000 (02:45 +0000)]
R600: Canonicalize access to function attributes, NFC

Canonicalize access to function attributes to use the simpler API.

getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind)
  => getFnAttribute(Kind)

getAttributes().hasAttribute(AttributeSet::FunctionIndex, Kind)
  => hasFnAttribute(Kind)

llvm-svn: 229222

9 years agoMips: Canonicalize access to function attributes, NFC
Duncan P. N. Exon Smith [Sat, 14 Feb 2015 02:37:48 +0000 (02:37 +0000)]
Mips: Canonicalize access to function attributes, NFC

Canonicalize access to function attributes to use the simpler API.

getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind)
  => getFnAttribute(Kind)

getAttributes().hasAttribute(AttributeSet::FunctionIndex, Kind)
  => hasFnAttribute(Kind)

llvm-svn: 229221

9 years agoARM: Canonicalize access to function attributes, NFC
Duncan P. N. Exon Smith [Sat, 14 Feb 2015 02:24:44 +0000 (02:24 +0000)]
ARM: Canonicalize access to function attributes, NFC

Canonicalize access to function attributes to use the simpler API.

getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind)
  => getFnAttribute(Kind)

getAttributes().hasAttribute(AttributeSet::FunctionIndex, Kind)
  => hasFnAttribute(Kind)

llvm-svn: 229220

9 years agoTry to unbreak the Hexagon bot
David Majnemer [Sat, 14 Feb 2015 02:18:14 +0000 (02:18 +0000)]
Try to unbreak the Hexagon bot

llvm-svn: 229219

9 years agoAArch64: Canonicalize access to function attributes, NFC
Duncan P. N. Exon Smith [Sat, 14 Feb 2015 02:09:06 +0000 (02:09 +0000)]
AArch64: Canonicalize access to function attributes, NFC

Canonicalize access to function attributes to use the simpler API.

getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind)
  => getFnAttribute(Kind)

getAttributes().hasAttribute(AttributeSet::FunctionIndex, Kind)
  => hasFnAttribute(Kind)

llvm-svn: 229218

9 years agollvm-cov: Actually use the command line arguments when reporting
Justin Bogner [Sat, 14 Feb 2015 02:05:05 +0000 (02:05 +0000)]
llvm-cov: Actually use the command line arguments when reporting

This code didn't really make sense as is. If a filename is passed in,
the user obviously wants the coverage *for that file*, not *for
everything*.

llvm-svn: 229217

9 years agoMoar post-commit review.
Jonathan Roelofs [Sat, 14 Feb 2015 02:02:56 +0000 (02:02 +0000)]
Moar post-commit review.

Apparently typing is hard.

llvm-svn: 229216

9 years agollvm-cov: Simplify coverage reports, fixing PR22575 in the process
Justin Bogner [Sat, 14 Feb 2015 02:01:24 +0000 (02:01 +0000)]
llvm-cov: Simplify coverage reports, fixing PR22575 in the process

PR22575 occurred because we were unsafely storing references into a
std::vector. If the vector moved because it grew, we'd be left
iterating through garbage memory. This avoids the issue by simplifying
the logic to gather coverage information as we go, rather than storing
it and iterating over it.

I'm relying on the existing tests showing that this is semantically
NFC, since it's difficult to hit the issue this fixes without
relatively large covered programs.

llvm-svn: 229215

9 years agoX86: Canonicalize access to function attributes, NFC
Duncan P. N. Exon Smith [Sat, 14 Feb 2015 01:59:52 +0000 (01:59 +0000)]
X86: Canonicalize access to function attributes, NFC

Canonicalize access to function attributes to use the simpler API.

getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind)
  => getFnAttribute(Kind)

getAttributes().hasAttribute(AttributeSet::FunctionIndex, Kind)
  => hasFnAttribute(Kind)

llvm-svn: 229214

9 years agoDR1748: the reserved placement allocation functions have undefined behavior if
Richard Smith [Sat, 14 Feb 2015 01:52:20 +0000 (01:52 +0000)]
DR1748: the reserved placement allocation functions have undefined behavior if
they're given a null pointer as an argument, so we do not need to emit null
checks on their results.

llvm-svn: 229213

9 years agoCodeGen: _Atomic(_Complex) shouldn't crash
David Majnemer [Sat, 14 Feb 2015 01:48:17 +0000 (01:48 +0000)]
CodeGen: _Atomic(_Complex) shouldn't crash

We could be a little kinder if we did a compare-exchange loop instead of
an atomic-load/store pair.

llvm-svn: 229212

9 years agoBuild cgo and llgo-go
Peter Collingbourne [Sat, 14 Feb 2015 01:46:01 +0000 (01:46 +0000)]
Build cgo and llgo-go

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

llvm-svn: 229211

9 years agollvm-go: Set $GCCGO instead of putting a gccgo executable on $PATH.
Peter Collingbourne [Sat, 14 Feb 2015 01:45:57 +0000 (01:45 +0000)]
llvm-go: Set $GCCGO instead of putting a gccgo executable on $PATH.

Now that llgo ships its own go command we can rely on it having support for $GCCGO.

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

llvm-svn: 229210

9 years agollvm-go: Add flag for specifying path to go command.
Peter Collingbourne [Sat, 14 Feb 2015 01:45:56 +0000 (01:45 +0000)]
llvm-go: Add flag for specifying path to go command.

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

llvm-svn: 229209

9 years agoCodeGen: Canonicalize access to function attributes, NFC
Duncan P. N. Exon Smith [Sat, 14 Feb 2015 01:44:41 +0000 (01:44 +0000)]
CodeGen: Canonicalize access to function attributes, NFC

Canonicalize access to function attributes to use the simpler API.

getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind)
  => getFnAttribute(Kind)

getAttributes().hasAttribute(AttributeSet::FunctionIndex, Kind)
  => hasFnAttribute(Kind)

Also, add `Function::getFnStackAlignment()`, and canonicalize:

getAttributes().getStackAlignment(AttributeSet::FunctionIndex)
  => getFnStackAlignment()

llvm-svn: 229208

9 years agoAddress post-commit review comments
Jonathan Roelofs [Sat, 14 Feb 2015 01:38:35 +0000 (01:38 +0000)]
Address post-commit review comments

llvm-svn: 229207

9 years ago[X86] Factor out the CMOV pseudo definitions. NFCI.
Ahmed Bougacha [Sat, 14 Feb 2015 01:36:53 +0000 (01:36 +0000)]
[X86] Factor out the CMOV pseudo definitions. NFCI.

llvm-svn: 229206

9 years agoRevert "Revert r229082 for a bit, it caused PR22577."
David Majnemer [Sat, 14 Feb 2015 01:35:12 +0000 (01:35 +0000)]
Revert "Revert r229082 for a bit, it caused PR22577."

This reverts commit r229123.  It was a red herring, the bug was present
without r229082.

llvm-svn: 229205

9 years agoCodeGen: Correctly convert atomic bool from i8 to i1
David Majnemer [Sat, 14 Feb 2015 01:35:07 +0000 (01:35 +0000)]
CodeGen: Correctly convert atomic bool from i8 to i1

Bools are a little tricky, they are i8 in memory and must be coerced
back to i1 before further operations can be performed on them.

This fixes PR22577.

llvm-svn: 229204

9 years agoRevert "On ELF, put PIC jump tables in a non executable section."
Matthias Braun [Sat, 14 Feb 2015 01:16:54 +0000 (01:16 +0000)]
Revert "On ELF, put PIC jump tables in a non executable section."

This reverts commit r228939.

The commit broke something in the output of exception handling tables on
darwin x86-64.

llvm-svn: 229203

9 years agoTransforms: Canonicalize access to function attributes, NFC
Duncan P. N. Exon Smith [Sat, 14 Feb 2015 01:11:29 +0000 (01:11 +0000)]
Transforms: Canonicalize access to function attributes, NFC

Canonicalize access to function attributes to use the simpler API.

getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind)
  => getFnAttribute(Kind)

getAttributes().hasAttribute(AttributeSet::FunctionIndex, Kind)
  => hasFnAttribute(Kind)

llvm-svn: 229202

9 years agoCorrectly handle N_INDR nlist entries and don't rely on the trie information in order...
Greg Clayton [Sat, 14 Feb 2015 00:51:13 +0000 (00:51 +0000)]
Correctly handle N_INDR nlist entries and don't rely on the trie information in order to reproduce them since this dyld trie info can be missing.

<rdar://problem/19749670>

llvm-svn: 229201

9 years ago[modules] Split off a separate module for DebugInfo/PDB/DIA so that its headers
Richard Smith [Sat, 14 Feb 2015 00:47:20 +0000 (00:47 +0000)]
[modules] Split off a separate module for DebugInfo/PDB/DIA so that its headers
don't get included on systems where the DIA SDK is unavailable.

llvm-svn: 229200

9 years agoRevert r229185, "Raising minimum required Visual Studio version to 2013."
NAKAMURA Takumi [Sat, 14 Feb 2015 00:45:32 +0000 (00:45 +0000)]
Revert r229185, "Raising minimum required Visual Studio version to 2013."

All builders are not ready yet.

llvm-svn: 229199

9 years agoUpdate test case to be compatible with auto-migration to new getelementptr syntax...
David Blaikie [Sat, 14 Feb 2015 00:41:07 +0000 (00:41 +0000)]
Update test case to be compatible with auto-migration to new getelementptr syntax coming in the near future

The first change won't touch GEPOperators such as these, but the update
script only identifies them by the leading '(' after getelementptr or
'getelementptr inbounds', so update this test to at least have those
features to allow auto-migrating.

llvm-svn: 229198

9 years agoRemove trailing whitespace getting in the way of near-future getelementptr change...
David Blaikie [Sat, 14 Feb 2015 00:28:51 +0000 (00:28 +0000)]
Remove trailing whitespace getting in the way of near-future getelementptr change updates

llvm-svn: 229197

9 years agoAdjust test case to be compatible with future changes to explicitly pass the type...
David Blaikie [Sat, 14 Feb 2015 00:26:13 +0000 (00:26 +0000)]
Adjust test case to be compatible with future changes to explicitly pass the type to getelementptr

llvm-svn: 229196

9 years agoMake the unwinder build on thumbv6-m with the integrated assembler.
Jonathan Roelofs [Sat, 14 Feb 2015 00:21:03 +0000 (00:21 +0000)]
Make the unwinder build on thumbv6-m with the integrated assembler.

http://reviews.llvm.org/D7630

llvm-svn: 229194

9 years agoUnify the two EH personality classification routines I wrote
Reid Kleckner [Sat, 14 Feb 2015 00:21:02 +0000 (00:21 +0000)]
Unify the two EH personality classification routines I wrote

We only need one.

llvm-svn: 229193

9 years agoAnalysis: Canonicalize access to function attributes, NFC
Duncan P. N. Exon Smith [Sat, 14 Feb 2015 00:12:15 +0000 (00:12 +0000)]
Analysis: Canonicalize access to function attributes, NFC

Canonicalize access to function attributes to use the simpler API.

getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind)
  => getFnAttribute(Kind)

getAttributes().hasAttribute(AttributeSet::FunctionIndex, Kind)
  => hasFnAttribute(Kind)

llvm-svn: 229192

9 years agoUse the template method to grab the target specific subtarget.
Eric Christopher [Sat, 14 Feb 2015 00:09:46 +0000 (00:09 +0000)]
Use the template method to grab the target specific subtarget.

llvm-svn: 229191

9 years agoUse @LINE instead of hardcoded line numbers
Filipe Cabecinhas [Sat, 14 Feb 2015 00:09:09 +0000 (00:09 +0000)]
Use @LINE instead of hardcoded line numbers

llvm-svn: 229190

9 years ago[InstCombine] When canonicalizing gep indices, prefer zext when possible
Philip Reames [Sat, 14 Feb 2015 00:05:36 +0000 (00:05 +0000)]
[InstCombine] When canonicalizing gep indices, prefer zext when possible

If we know that the sign bit of a value being sign extended is zero, we can use a zero extension instead.  This is motivated by the fact that zero extensions are generally cheaper on x86 (and most other architectures?).  We already apply a similar transform in DAGCombine, this just extends that to the IR level.

This comes up when we eagerly canonicalize gep indices to the width of a machine register (i64 on x86_64). To do so, we insert sign extensions (sext) to promote smaller types.

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

llvm-svn: 229189

9 years ago[modules] If we have a choice between including a file textually and importing
Richard Smith [Fri, 13 Feb 2015 23:50:20 +0000 (23:50 +0000)]
[modules] If we have a choice between including a file textually and importing
a prebuilt form from a module, prefer the modular form, all else being equal.

llvm-svn: 229188

9 years agoFix broken logic for include in block check.
John Thompson [Fri, 13 Feb 2015 23:32:08 +0000 (23:32 +0000)]
Fix broken logic for include in block check.

llvm-svn: 229187

9 years agoChange the default disassembly format again. First attempt at
Jason Molenda [Fri, 13 Feb 2015 23:24:21 +0000 (23:24 +0000)]
Change the default disassembly format again.  First attempt at
changing it was in r219544 - after living on that for a few
months, I wanted to take another crack at this.

The disassembly-format setting still exists and the old format
can be user specified with a setting like

${current-pc-arrow}${addr-file-or-load}{ <${function.name-without-args}${function.concrete-only-addr-offset-no-padding}>}:

This patch was discussed in http://reviews.llvm.org/D7578

<rdar://problem/19726421>

llvm-svn: 229186

9 years agoRaising minimum required Visual Studio version to 2013.
Chris Bieneman [Fri, 13 Feb 2015 23:24:14 +0000 (23:24 +0000)]
Raising minimum required Visual Studio version to 2013.

This is based on the discussions on: [LLVMdev] [RFC] Raising LLVM minimum required MSVC version to 2013 for trunk

llvm-svn: 229185

9 years agoAdd -frtti to tests that need rtti
Filipe Cabecinhas [Fri, 13 Feb 2015 23:19:23 +0000 (23:19 +0000)]
Add -frtti to tests that need rtti

llvm-svn: 229184

9 years ago[dsymutil] Add DIE selection algorithm.
Frederic Riss [Fri, 13 Feb 2015 23:18:34 +0000 (23:18 +0000)]
[dsymutil] Add DIE selection algorithm.

With this commit, llvm-dsymutil learns how to choose which DIEs
it will link in the final output and which ones it won't. This
is based on the 'valid relocation' information that has been
built in the previous commits.

The test only tests that we choose the right 'root DIEs'. The
selection algorithm (and especially the part that walk the
dependencies of a root DIE) lacks a bit test coverage. This
will be much easier to cover when we output actual Dwarf and
thus can use llvm-dwarfdump to verify the structure of the
emitted DIE trees. I'll add more tests then.

llvm-svn: 229183

9 years ago[dsymutil] Downcase a function name.
Frederic Riss [Fri, 13 Feb 2015 23:18:31 +0000 (23:18 +0000)]
[dsymutil] Downcase a function name.

llvm-svn: 229182

9 years ago[dsymutil] Add a few generic helper methods.
Frederic Riss [Fri, 13 Feb 2015 23:18:29 +0000 (23:18 +0000)]
[dsymutil] Add a few generic helper methods.

To be used in subsequent commits (separated to keep only core logic
in the follow-ups).

llvm-svn: 229181

9 years ago[dsymutil] constify trivial function.
Frederic Riss [Fri, 13 Feb 2015 23:18:27 +0000 (23:18 +0000)]
[dsymutil] constify trivial function.

llvm-svn: 229180

9 years agoDWARFUnit: Add a couple of helpers to access the DIE array.
Frederic Riss [Fri, 13 Feb 2015 23:18:24 +0000 (23:18 +0000)]
DWARFUnit: Add a couple of helpers to access the DIE array.

To be used in dsymutil (or any other client that wants to take
advantage of the fact that DIEs are stored in a vector).

llvm-svn: 229179

9 years ago[dsymutil] Find relocations that correspond to debug map entries.
Frederic Riss [Fri, 13 Feb 2015 23:18:22 +0000 (23:18 +0000)]
[dsymutil] Find relocations that correspond to debug map entries.

These 'valid relocations' in the debug_info section will be how
dsymutil identifies the DIEs it needs to keep in the linked debug
information.

llvm-svn: 229178

9 years ago[dsymutil] Add DebugMapObject::lookupObjectAddress()
Frederic Riss [Fri, 13 Feb 2015 23:18:16 +0000 (23:18 +0000)]
[dsymutil] Add DebugMapObject::lookupObjectAddress()

It turns out the debug map will be interogated both by name and
by object file address. Add the latter capability.

llvm-svn: 229177

9 years agoFixing broken bots.
Chris Bieneman [Fri, 13 Feb 2015 23:10:31 +0000 (23:10 +0000)]
Fixing broken bots.

llvm-svn: 229176

9 years agoMinor tweak to MDA
Philip Reames [Fri, 13 Feb 2015 23:08:37 +0000 (23:08 +0000)]
Minor tweak to MDA

Two minor tweaks I noticed when reading through the code:
- No need to recompute begin() on every iteration.  We're not modifying the instructions in this loop.
- We can ignore PHINodes and Dbg intrinsics.  The current code does this anyways, but it will spend slightly more time doing so and will count towards the limit of instructions in the block.  It seems really silly to give up due the presence of PHIs...

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

llvm-svn: 229175

9 years agoRoll gofrontend to 0fde0b6a7eb2
Peter Collingbourne [Fri, 13 Feb 2015 22:59:07 +0000 (22:59 +0000)]
Roll gofrontend to 0fde0b6a7eb2

This gives us the sources for cgo, go and gofmt.

llvm-svn: 229174

9 years agoUpdate for API change
Peter Collingbourne [Fri, 13 Feb 2015 22:58:36 +0000 (22:58 +0000)]
Update for API change

llvm-svn: 229173

9 years agoNFC. Moving the RegisteredOptionCategories global into the CommandLineParser class.
Chris Bieneman [Fri, 13 Feb 2015 22:54:32 +0000 (22:54 +0000)]
NFC. Moving the RegisteredOptionCategories global into the CommandLineParser class.

llvm-svn: 229172

9 years agoNFC. clang-format wants to change this from two lines to one.
Chris Bieneman [Fri, 13 Feb 2015 22:54:29 +0000 (22:54 +0000)]
NFC. clang-format wants to change this from two lines to one.

llvm-svn: 229171

9 years agoNFC. More code cleanup making LookupOption a member of the CommandLineParser.
Chris Bieneman [Fri, 13 Feb 2015 22:54:27 +0000 (22:54 +0000)]
NFC. More code cleanup making LookupOption a member of the CommandLineParser.

llvm-svn: 229170

9 years agoThe base pointer save offset can be computed at initialization time,
Eric Christopher [Fri, 13 Feb 2015 22:48:53 +0000 (22:48 +0000)]
The base pointer save offset can be computed at initialization time,
do so and fix up the calls.

llvm-svn: 229169

9 years agoMove the target machine variable so that it's initialized early
Eric Christopher [Fri, 13 Feb 2015 22:48:51 +0000 (22:48 +0000)]
Move the target machine variable so that it's initialized early
enough we can use it to initialize frame lowering.

llvm-svn: 229168

9 years ago[modules] Guard against recursively re-entering diagnosing ODR violations while
Richard Smith [Fri, 13 Feb 2015 22:43:51 +0000 (22:43 +0000)]
[modules] Guard against recursively re-entering diagnosing ODR violations while
in the middle of emitting an ODR violation diagnostic. I don't yet have a
reduced testcase for this issue, working on it...

llvm-svn: 229167