platform/upstream/llvm.git
9 years agoLinux - debugging of local processes via lldb-gdbserver
Vince Harron [Sun, 1 Mar 2015 23:21:29 +0000 (23:21 +0000)]
Linux - debugging of local processes via lldb-gdbserver

Instead of lldb calling the ptrace APIs directly, it launches an llgs
instance and communicates with it via the remote debug protocol.

This has two advantages.

There is more code shared between the remote debugging code path
and the local debugging code path. If a feature works in remote, it
probably works locally and vice-versa.

It makes us more architecturally similar to OSX (which also does
local debugging via a connection to debugserver).

This path is called LLGS local. We think that this configuration is
now at parity with (or better than) local linux debugging.

It is currently invoked if you have an environment variable defined
"PLATFORM_LINUX_FORCE_LLGS_LOCAL"

We would like to switch to LLGS local as the default path and only
use the non-LLGS path if someone has an environment variable defined
"PLATFORM_LINUX_DISABLE_LLGS_LOCAL"

Later, if all goes well, we would like to remove non-LLGS local
debugging support to simplify the codebase and avoid confusion.

llvm-svn: 230919

9 years agoAnother missing include for MSVC.
Benjamin Kramer [Sun, 1 Mar 2015 22:34:04 +0000 (22:34 +0000)]
Another missing include for MSVC.

llvm-svn: 230918

9 years agoDebugInfo: Give externally defined types a size and alignment where
Peter Collingbourne [Sun, 1 Mar 2015 22:07:04 +0000 (22:07 +0000)]
DebugInfo: Give externally defined types a size and alignment where
possible. Fixes PR22736.

llvm-svn: 230914

9 years agostd::function is part of <functional>, not <utility>
Benjamin Kramer [Sun, 1 Mar 2015 21:49:21 +0000 (21:49 +0000)]
std::function is part of <functional>, not <utility>

llvm-svn: 230913

9 years agoAdd another missing include for MSVC.
Benjamin Kramer [Sun, 1 Mar 2015 21:47:46 +0000 (21:47 +0000)]
Add another missing include for MSVC.

llvm-svn: 230912

9 years agoX86: Replace variadic function with init list. NFC.
Benjamin Kramer [Sun, 1 Mar 2015 21:47:40 +0000 (21:47 +0000)]
X86: Replace variadic function with init list. NFC.

llvm-svn: 230911

9 years agoAdd missing include.
Benjamin Kramer [Sun, 1 Mar 2015 21:36:40 +0000 (21:36 +0000)]
Add missing include.

llvm-svn: 230910

9 years agoAdd missing includes. make_unique proliferated everywhere.
Benjamin Kramer [Sun, 1 Mar 2015 21:28:53 +0000 (21:28 +0000)]
Add missing includes. make_unique proliferated everywhere.

llvm-svn: 230909

9 years ago[PBQP] Address post-commit style comment for r230904. NFC.
Arnaud A. de Grandmaison [Sun, 1 Mar 2015 21:22:50 +0000 (21:22 +0000)]
[PBQP] Address post-commit style comment for r230904. NFC.

Thanks David !

llvm-svn: 230908

9 years agoArrayRef: Remove the equals helper with many arguments.
Benjamin Kramer [Sun, 1 Mar 2015 21:05:05 +0000 (21:05 +0000)]
ArrayRef: Remove the equals helper with many arguments.

With initializer lists there is a really neat idiomatic way to write
this, 'ArrayRef.equals({1, 2, 3, 4, 5})'. Remove the equal method which
always had a hard limit on the number of arguments. I considered
rewriting it with variadic templates but that's not really a good fit
for a function with homogeneous arguments.

'ArrayRef == {1, 2, 3, 4, 5}' would've been even more awesome, but C++11
doesn't allow init lists with binary operators.

llvm-svn: 230907

9 years agoAdvertise 32 bit support for PlatformRemoteGDBServer on 64 bit systems.
Chaoren Lin [Sun, 1 Mar 2015 20:48:18 +0000 (20:48 +0000)]
Advertise 32 bit support for PlatformRemoteGDBServer on 64 bit systems.

Reviewers: vharron, clayborg, zturner

Subscribers: lldb-commits

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

llvm-svn: 230906

9 years agoRevert "PECOFF: Don't parse files in .drectve asynchronously."
Rui Ueyama [Sun, 1 Mar 2015 20:48:14 +0000 (20:48 +0000)]
Revert "PECOFF: Don't parse files in .drectve asynchronously."

This reverts commit r228955. Previously files appear in a .drectve
section are parsed synchronously to avoid threading issues. I believe
it's now safe to do that asynchronously.

llvm-svn: 230905

9 years ago[PBQP] Do not add an edge between nodes with totally disjoint allowed registers
Arnaud A. de Grandmaison [Sun, 1 Mar 2015 20:39:34 +0000 (20:39 +0000)]
[PBQP] Do not add an edge between nodes with totally disjoint allowed registers

Such edges are zero matrix, and they bring no additional info to the
allocation problem, apart from contributing to nodes' degree. Removing
those edges is expected to improve allocation time.

Tune the spill cost comparison, as this gives better average performances
now that the nodes' degrees has changed.

llvm-svn: 230904

9 years agoclang-format: Always align */& in multi-var DeclStmts.
Daniel Jasper [Sun, 1 Mar 2015 18:55:26 +0000 (18:55 +0000)]
clang-format: Always align */& in multi-var DeclStmts.

Seems like the most consistent thing to do and in multi-var DeclStmts,
it is especially important to point out that the */& bind to the
identifier.

llvm-svn: 230903

9 years ago[Refactor] Include explicitly what is used
Johannes Doerfert [Sun, 1 Mar 2015 18:51:51 +0000 (18:51 +0000)]
[Refactor] Include explicitly what is used

llvm-svn: 230902

9 years ago[Refactor] Include explicitly what is used
Johannes Doerfert [Sun, 1 Mar 2015 18:45:58 +0000 (18:45 +0000)]
[Refactor] Include explicitly what is used

llvm-svn: 230901

9 years ago[Refactor] Remove Scop * member to simplify JSON class
Johannes Doerfert [Sun, 1 Mar 2015 18:44:57 +0000 (18:44 +0000)]
[Refactor] Remove Scop * member to simplify JSON class

llvm-svn: 230900

9 years ago[Refactor] Simplify ScopPass interface
Johannes Doerfert [Sun, 1 Mar 2015 18:43:50 +0000 (18:43 +0000)]
[Refactor] Simplify ScopPass interface

llvm-svn: 230899

9 years ago[Refactor] Use virtual and override appropriately
Johannes Doerfert [Sun, 1 Mar 2015 18:42:08 +0000 (18:42 +0000)]
[Refactor] Use virtual and override appropriately

  + Add override for overwritten methods.
  + Remove virtual for methods we do not want to be overwritten.

llvm-svn: 230898

9 years ago[Refactor] Add a Scop & as argument to printScop
Johannes Doerfert [Sun, 1 Mar 2015 18:40:25 +0000 (18:40 +0000)]
[Refactor] Add a Scop & as argument to printScop

  This is the first step in the interface simplification.

llvm-svn: 230897

9 years ago[Cleanup] Remove unused passes
Johannes Doerfert [Sun, 1 Mar 2015 18:38:35 +0000 (18:38 +0000)]
[Cleanup] Remove unused passes

llvm-svn: 230896

9 years agoMake VTs and UnicodeCharSet ctors constexpr if the compiler supports it.
Benjamin Kramer [Sun, 1 Mar 2015 18:10:07 +0000 (18:10 +0000)]
Make VTs and UnicodeCharSet ctors constexpr if the compiler supports it.

There are static variables of this around that we really want to go
into a read-only segment. Sadly compilers are not smart enough to figure
that out without constexpr.

llvm-svn: 230895

9 years agoMake some non-constant static variables non-static or fully const.
Benjamin Kramer [Sun, 1 Mar 2015 18:09:56 +0000 (18:09 +0000)]
Make some non-constant static variables non-static or fully const.

Otherwise we have to emit thread-safe initialization for them. NFC.

llvm-svn: 230894

9 years agoSema: Remove stray static
Benjamin Kramer [Sun, 1 Mar 2015 18:09:50 +0000 (18:09 +0000)]
Sema: Remove stray static

This is a real bug if the code path is ever used with different pointer
sizes in the same process.

llvm-svn: 230893

9 years agoReverted 230471 - gather scatter handling in table gen.
Elena Demikhovsky [Sun, 1 Mar 2015 08:23:41 +0000 (08:23 +0000)]
Reverted 230471 - gather scatter handling in table gen.

llvm-svn: 230892

9 years agoAVX-512: Added mask and rounding mode for scalar arithmetics
Elena Demikhovsky [Sun, 1 Mar 2015 07:44:04 +0000 (07:44 +0000)]
AVX-512: Added mask and rounding mode for scalar arithmetics
Added more tests for scalar instructions to destinguish between AVX and AVX-512 forms.

llvm-svn: 230891

9 years ago[llvm-pdbdump] Fix GCC build.
Zachary Turner [Sun, 1 Mar 2015 06:59:57 +0000 (06:59 +0000)]
[llvm-pdbdump] Fix GCC build.

llvm-svn: 230890

9 years ago[llvm-pdbdump] Clean up method signatures.
Zachary Turner [Sun, 1 Mar 2015 06:51:29 +0000 (06:51 +0000)]
[llvm-pdbdump] Clean up method signatures.

llvm-svn: 230889

9 years ago[llvm-pdbdump] Add regex-based filtering.
Zachary Turner [Sun, 1 Mar 2015 06:49:49 +0000 (06:49 +0000)]
[llvm-pdbdump] Add regex-based filtering.

llvm-svn: 230888

9 years agoFix attaching to 32 bit inferior with 64 bit llgs.
Chaoren Lin [Sun, 1 Mar 2015 04:31:16 +0000 (04:31 +0000)]
Fix attaching to 32 bit inferior with 64 bit llgs.

Summary: Executable module should use inferior architecture instead of host architecture.

Reviewers: ovyalov, vharron, clayborg

Subscribers: lldb-commits

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

llvm-svn: 230887

9 years agoRevert "PECOFF: Temporarily add a lock to un-break buildbot."
Rui Ueyama [Sun, 1 Mar 2015 04:25:04 +0000 (04:25 +0000)]
Revert "PECOFF: Temporarily add a lock to un-break buildbot."

This reverts commit r230086. I added a lock to guard FileCOFF::doParse(),
which killed parallel file parsing. Now the buildbots got back to green,
I believe the threading issue was resolved, so it's time to remove the
guard to see if it works with the buildbots.

llvm-svn: 230886

9 years agoRevert r230655, "gold-plugin: "Upgrade" debug info and handle its warnings."
NAKAMURA Takumi [Sun, 1 Mar 2015 04:16:28 +0000 (04:16 +0000)]
Revert r230655, "gold-plugin: "Upgrade" debug info and handle its warnings."

It emits *millions of warnings* during selfhosting LTO build, to choke the buildbot with gigbytes of log.

llvm-svn: 230885

9 years agoavoid infinite looping when folding vector multiplies of constants (PR22698)
Sanjay Patel [Sun, 1 Mar 2015 00:09:35 +0000 (00:09 +0000)]
avoid infinite looping when folding vector multiplies of constants (PR22698)

We were missing a check for the following fold in DAGCombiner:

// fold (fmul (fmul x, c1), c2) -> (fmul x, (fmul c1, c2))

If 'x' is also a constant, then we shouldn't do anything. Otherwise, we could end up swapping the operands back and forth forever.

This should fix:
http://llvm.org/bugs/show_bug.cgi?id=22698

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

llvm-svn: 230884

9 years agofixed to test only the feature, not the feature and a CPU
Sanjay Patel [Sun, 1 Mar 2015 00:02:03 +0000 (00:02 +0000)]
fixed to test only the feature, not the feature and a CPU

llvm-svn: 230883

9 years agoDebugInfo: Convert DW_OP_piece => DW_OP_bit_piece
Duncan P. N. Exon Smith [Sat, 28 Feb 2015 23:57:16 +0000 (23:57 +0000)]
DebugInfo: Convert DW_OP_piece => DW_OP_bit_piece

r228631 stopped using `DW_OP_piece` inside `DIExpression`s in the IR,
but it apparently missed updating these testcases.  Caught by verifier
checks for `MDExpression` while working on moving the new hierarchy into
place.

llvm-svn: 230882

9 years agomake the tested feature (SSE2) explicit
Sanjay Patel [Sat, 28 Feb 2015 23:55:24 +0000 (23:55 +0000)]
make the tested feature (SSE2) explicit

llvm-svn: 230881

9 years agoDebugInfo: Fix invalid file reference in CodeGen/X86/unknown-location.ll
Duncan P. N. Exon Smith [Sat, 28 Feb 2015 23:52:24 +0000 (23:52 +0000)]
DebugInfo: Fix invalid file reference in CodeGen/X86/unknown-location.ll

There are two types of files in the old (current) debug info schema.

    !0 = !{!"some/filename", !"/path/to/dir"}
    !1 = !{!"0x29", !0} ; [ DW_TAG_file_type ]

!1 has a wrapper class called `DIFile` which inherits from `DIScope` and
is referenced in 'scope' fields.

!0 is called a "file node", and debug info nodes with a 'file' field
point at one of these directly -- although they're built in `DIBuilder`
by sending in a `DIFile` and reaching into it.

In the new hierarchy, I unified these nodes as `MDFile` (which `DIFile`
is a lightweight wrapper for) in r230057.  Moving the new hierarchy into
place (and upgrading testcases) caused CodeGen/X86/unknown-location.ll
to start failing -- apparently "0x29" was previously showing up in the
linetable as a filename, causing:

    .loc 2 4 3

(where 2 points at filename "0x29") instead of:

    .loc 1 4 3

(where 1 points at the actual filename).

Change the testcase to use the old schema correctly.

llvm-svn: 230880

9 years agoDebugInfo: Use TempMDNode in DIDescriptor::replaceAllUsesWith()
Duncan P. N. Exon Smith [Sat, 28 Feb 2015 23:48:02 +0000 (23:48 +0000)]
DebugInfo: Use TempMDNode in DIDescriptor::replaceAllUsesWith()

Start using `TempMDNode` in `DIDescriptor::replaceAllUsesWith()`
(effectively `std::unique_ptr<MDNode, MDNode::deleteTemporary>`).

Besides making ownership more explicit, this prepares for when
`DIDescriptor` refers to nodes that are *not* `MDTuple`.  The old logic
for "replacing" a node with itself used `MDNode::get()` to return a new
(uniqued) `MDTuple`, while the new logic just defers to
`MDNode::replaceWithUniqued()` (which also typically saves an allocation
and RAUW traffic by mutating the temporary in place).

llvm-svn: 230879

9 years agofixed to test only the feature, not the feature and a CPU
Sanjay Patel [Sat, 28 Feb 2015 23:47:09 +0000 (23:47 +0000)]
fixed to test only the feature, not the feature and a CPU

llvm-svn: 230878

9 years agoOptimize metadata node fields for CHECK-ability
Duncan P. N. Exon Smith [Sat, 28 Feb 2015 23:21:38 +0000 (23:21 +0000)]
Optimize metadata node fields for CHECK-ability

While gaining practical experience hand-updating CHECK lines (for moving
the new debug info hierarchy into place),  I learnt a few things about
CHECK-ability of the specialized node assembly output.

  - The first part of a `CHECK:` is to identify the "right" node (this
    is especially true if you intend to use the new `CHECK-SAME`
    feature, since the first CHECK needs to identify the node correctly
    before you can split the line).
      - If there's a `tag:`, it should go first.
      - If there's a `name:`, it should go next (followed by the
        `linkageName:`, if any).
      - If there's a `scope:`, it should follow after that.
  - When a node type supports multiple DW_TAGs, but one is implied by
    its name and is overwhelmingly more common, the `tag:` field is
    terribly uninteresting unless it's different.
      - `MDBasicType` is almost always `DW_TAG_base_type`.
      - `MDTemplateValueParameter` is almost always
        `DW_TAG_template_value_parameter`.
  - Printing `name: ""` doesn't improve CHECK-ability, and there are far
    more nodes than I realized that are commonly nameless.
  - There are a few other fields that similarly aren't very interesting
    when they're empty.

This commit updates the `AsmWriter` as suggested above (and makes
necessary changes in `LLParser` for round-tripping).

llvm-svn: 230877

9 years agofix typo; NFC
Sanjay Patel [Sat, 28 Feb 2015 22:25:06 +0000 (22:25 +0000)]
fix typo; NFC

llvm-svn: 230876

9 years agoAsmWriter: Escape string fields in metadata
Duncan P. N. Exon Smith [Sat, 28 Feb 2015 22:20:16 +0000 (22:20 +0000)]
AsmWriter: Escape string fields in metadata

Properly escape string fields in metadata.  I've added a spot-check with
direct coverage for `MDFile::getFilename()`, but we'll get more coverage
once the hierarchy is moved into place (since this comes up in various
checked-in testcases).

I've replicated the `if` logic using the `ShouldSkipEmpty` flag
(although a follow-up commit is going to change how often this flag is
specified); no NFCI other than escaping the string fields.

llvm-svn: 230875

9 years agoRevert r229678 "tsan: fix signal handling during stop-the-world"
Hans Wennborg [Sat, 28 Feb 2015 22:18:11 +0000 (22:18 +0000)]
Revert r229678  "tsan: fix signal handling during stop-the-world"

This was causing Chromium's browser_tests to flakily segfault during
leak check.

llvm-svn: 230874

9 years agoAsmWriter: Extract writeStringField(), NFCI
Duncan P. N. Exon Smith [Sat, 28 Feb 2015 22:16:56 +0000 (22:16 +0000)]
AsmWriter: Extract writeStringField(), NFCI

Extract logic for escaping a string field in the new debug info
hierarchy from `GenericDebugNode`.  A follow-up commit will use it far
more widely (hence the dead code for `ShouldSkipEmpty`).

llvm-svn: 230873

9 years agoFix buildbot issues for MDScope::getFile() after r230871
Duncan P. N. Exon Smith [Sat, 28 Feb 2015 21:58:10 +0000 (21:58 +0000)]
Fix buildbot issues for MDScope::getFile() after r230871

I hope this extra cast will make everyone happy...

llvm-svn: 230872

9 years agoIR: Specialize MDScope::getFile() for MDFile
Duncan P. N. Exon Smith [Sat, 28 Feb 2015 21:47:02 +0000 (21:47 +0000)]
IR: Specialize MDScope::getFile() for MDFile

Fix `MDScope::getFile()` so that it correctly returns a valid `MDFile`
even when it's an instance of `MDFile`.  This logic is necessary because
of r230057.  I'm working on moving the new hierarchy into place
out-of-tree (on track to commit Monday morning, BTW), and this was
exposed by a few failing tests.

llvm-svn: 230871

9 years agoFix line endings on Transforms/Inline/inline_dbg_declare.ll
Duncan P. N. Exon Smith [Sat, 28 Feb 2015 21:38:32 +0000 (21:38 +0000)]
Fix line endings on Transforms/Inline/inline_dbg_declare.ll

llvm-svn: 230870

9 years agobuild: remove the stub linux SDK
Saleem Abdulrasool [Sat, 28 Feb 2015 20:30:11 +0000 (20:30 +0000)]
build: remove the stub linux SDK

The SDK is insufficient to really build much.  The builtins can be built
standalone now which is what the stub SDK was meant to permit.  Remove the
unnecessary files.

llvm-svn: 230869

9 years ago[llvm-pdbdump] Better error handling.
Zachary Turner [Sat, 28 Feb 2015 20:23:18 +0000 (20:23 +0000)]
[llvm-pdbdump] Better error handling.

Previously it was impossible to distinguish between "There is
no PDB implementation for this platform" and "I tried to load
the PDB, but couldn't find the file", making it hard to figure
out if you built llvm-pdbdump incorrectly or if you just mistyped
a file name.

This patch adds proper error handling so that we can know exactly
what went wrong.

llvm-svn: 230868

9 years agocmath: account for MSVCRT 12.0 changes
Saleem Abdulrasool [Sat, 28 Feb 2015 20:18:39 +0000 (20:18 +0000)]
cmath: account for MSVCRT 12.0 changes

MSVCRT 12.0 introduces better compatibility for C99. This includes a number of
math routines that were previously undefined. Use the crtversion.h header to
detect the version of MSVCRT being targeted and avoid re-declaring the
variables.

Since copysign has been introduced in MSVCRT, importing the definition via using
makes it difficult to provide overloads (due to minor differences between
throw () and noexcept. Avoid defining the overloads on newer MSVCRT
targets.

llvm-svn: 230867

9 years agoIndexedMap: Default to SmallVector<T, 0>
Benjamin Kramer [Sat, 28 Feb 2015 20:15:07 +0000 (20:15 +0000)]
IndexedMap: Default to SmallVector<T, 0>

This looks ridiculous but SmallVector's realloc tricks really help with
large vectors of PODs, such as our virtreg IndexedMap.

llvm-svn: 230866

9 years agoDwarfAccelTable: We know how many hashes we have in the output, just reserve the...
Benjamin Kramer [Sat, 28 Feb 2015 20:15:00 +0000 (20:15 +0000)]
DwarfAccelTable: We know how many hashes we have in the output, just reserve the precise number

llvm-svn: 230865

9 years agoStackColoring: Move set instead of copying. NFC.
Benjamin Kramer [Sat, 28 Feb 2015 20:14:38 +0000 (20:14 +0000)]
StackColoring: Move set instead of copying. NFC.

llvm-svn: 230864

9 years agoLiveRange: Replace a creative vector erase loop with std::remove_if.
Benjamin Kramer [Sat, 28 Feb 2015 20:14:27 +0000 (20:14 +0000)]
LiveRange: Replace a creative vector erase loop with std::remove_if.

I didn't see this so far because it scans backwards, but that doesn't
make it any less quadratic. NFC.

llvm-svn: 230863

9 years agoRevert r230812. Do not break builds for no reason.
Nick Lewycky [Sat, 28 Feb 2015 19:43:20 +0000 (19:43 +0000)]
Revert r230812. Do not break builds for no reason.

llvm-svn: 230862

9 years agoFixup for recent -fast-isel-abort change: code didn't match description
Mehdi Amini [Sat, 28 Feb 2015 19:34:54 +0000 (19:34 +0000)]
Fixup for recent -fast-isel-abort change: code didn't match description

Level 1 should abort for all instructions but call/terminators/args.
Instead it was aborting only if the level was > 2

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 230861

9 years ago[X86] Remove the blendpd/blendps/pblendw/pblendd intrinsics. They can represented...
Craig Topper [Sat, 28 Feb 2015 19:33:17 +0000 (19:33 +0000)]
[X86] Remove the blendpd/blendps/pblendw/pblendd intrinsics. They can represented by shuffle_vector instructions.

llvm-svn: 230860

9 years ago[raw_ostream] When printing color on Windows, use correct bg color.
Zachary Turner [Sat, 28 Feb 2015 19:08:27 +0000 (19:08 +0000)]
[raw_ostream] When printing color on Windows, use correct bg color.

When using SetConsoleTextAttribute() to set the foreground or
background color, if you don't explicitly set both colors, then
a default value of black will be chosen for whichever you don't
specify a value for.

This is annoying when you have a non default console background
color, for example, and you try to set the foreground color.

This patch gets the existing fg/bg color and when you set one
attribute, sets the opposite attribute to its existing color
prior to comitting the update.

Reviewed by: Aaron Ballman
Differential Revision: http://reviews.llvm.org/D7967

llvm-svn: 230859

9 years agobpf: fix build
Alexei Starovoitov [Sat, 28 Feb 2015 18:03:04 +0000 (18:03 +0000)]
bpf: fix build

complete the plumbing of passing TargetRegisterInfo through
computeRegisterProperties started by r230583

llvm-svn: 230858

9 years agoUpdate obsolete comment
Johannes Doerfert [Sat, 28 Feb 2015 17:10:06 +0000 (17:10 +0000)]
Update obsolete comment

llvm-svn: 230857

9 years agoTRE: Just erase dead BBs and tweak the iteration loop not to increment the deleted...
Benjamin Kramer [Sat, 28 Feb 2015 16:47:27 +0000 (16:47 +0000)]
TRE: Just erase dead BBs and tweak the iteration loop not to increment the deleted BB iterator.

Leaving empty blocks around just opens up a can of bugs like PR22704. Deleting
them early also slightly simplifies code.

Thanks to Sanjay for the IR test case.

llvm-svn: 230856

9 years agoSilence variable set but not used warning in CodeGenRegisters.cpp, NFC.
Yaron Keren [Sat, 28 Feb 2015 15:54:04 +0000 (15:54 +0000)]
Silence variable set but not used warning in CodeGenRegisters.cpp, NFC.

llvm-svn: 230854

9 years agoSilence three more variable set but not used warnings, NFC.
Yaron Keren [Sat, 28 Feb 2015 15:29:17 +0000 (15:29 +0000)]
Silence three more variable set but not used warnings, NFC.

llvm-svn: 230853

9 years agoFormat non-affine subregions news item
Johannes Doerfert [Sat, 28 Feb 2015 14:48:15 +0000 (14:48 +0000)]
Format non-affine subregions news item

llvm-svn: 230852

9 years agoAdd non-affine subregions to the news
Johannes Doerfert [Sat, 28 Feb 2015 14:46:26 +0000 (14:46 +0000)]
Add non-affine subregions to the news

llvm-svn: 230851

9 years ago[OCaml] Generate documentation again with autoconf buildsystem.
Peter Zotov [Sat, 28 Feb 2015 13:48:23 +0000 (13:48 +0000)]
[OCaml] Generate documentation again with autoconf buildsystem.

Patch by Evangelos Foutras:

r220899 started using ocamlfind to build the OCaml bindings but
docs/Makefile still contains references to the OCAMLDOC macro which
is no longer being defined. The result is that OCaml documentation
isn't generated/installed.

llvm-svn: 230850

9 years agoConvert push_back loops into append calls.
Benjamin Kramer [Sat, 28 Feb 2015 13:20:15 +0000 (13:20 +0000)]
Convert push_back loops into append calls.

No functionality change intended.

llvm-svn: 230849

9 years agoSilence variable set but not used warning, NFC.
Yaron Keren [Sat, 28 Feb 2015 13:11:24 +0000 (13:11 +0000)]
Silence variable set but not used warning, NFC.

llvm-svn: 230848

9 years agoFix OS X build failure with Command Line Tools and without full Xcode installation
Kuba Brecka [Sat, 28 Feb 2015 12:25:10 +0000 (12:25 +0000)]
Fix OS X build failure with Command Line Tools and without full Xcode installation

On OS X, if you don't have a full Xcode installation, but just the Command Line Tools package, xcrun and xcodebuild don't return a valid SDK root path. In these cases, let's use "/" as the SDK root (which is where the headers and libraries are installed).

Reviewed at http://reviews.llvm.org/D7641

llvm-svn: 230847

9 years agoArrayRefize memory operand folding. NFC.
Benjamin Kramer [Sat, 28 Feb 2015 12:04:00 +0000 (12:04 +0000)]
ArrayRefize memory operand folding. NFC.

llvm-svn: 230846

9 years agoReplace std::copy with a back inserter with vector append where feasible
Benjamin Kramer [Sat, 28 Feb 2015 10:11:12 +0000 (10:11 +0000)]
Replace std::copy with a back inserter with vector append where feasible

All of the cases were just appending from random access iterators to a
vector. Using insert/append can grow the vector to the perfect size
directly and moves the growing out of the loop. No intended functionalty
change.

llvm-svn: 230845

9 years agoRemove option.ll as part of the Forward Control Flow Integrity
Eric Christopher [Sat, 28 Feb 2015 10:04:18 +0000 (10:04 +0000)]
Remove option.ll as part of the Forward Control Flow Integrity
removal.

llvm-svn: 230844

9 years agoAdd change accidentally missed from r230840.
Richard Smith [Sat, 28 Feb 2015 09:58:41 +0000 (09:58 +0000)]
Add change accidentally missed from r230840.

llvm-svn: 230843

9 years agoSymbolizer refactoring: SymbolizerTool and better interface
Kuba Brecka [Sat, 28 Feb 2015 09:39:05 +0000 (09:39 +0000)]
Symbolizer refactoring: SymbolizerTool and better interface

Reviewed at: http://reviews.llvm.org/D7936

llvm-svn: 230842

9 years agoAdd PS4's autolink syntax to autolink.m's CHECK lines.
Filipe Cabecinhas [Sat, 28 Feb 2015 07:35:07 +0000 (07:35 +0000)]
Add PS4's autolink syntax to autolink.m's CHECK lines.

llvm-svn: 230841

9 years ago[modules] Avoid adding a redecl chain to the 'pending out of date' list as the
Richard Smith [Sat, 28 Feb 2015 05:57:02 +0000 (05:57 +0000)]
[modules] Avoid adding a redecl chain to the 'pending out of date' list as the
very first step in updating it.

llvm-svn: 230840

9 years agoGive better diagnostics when -fmodule-file= finds a bad file: if the file is
Richard Smith [Sat, 28 Feb 2015 03:09:52 +0000 (03:09 +0000)]
Give better diagnostics when -fmodule-file= finds a bad file: if the file is
found indirectly, explain how we got there, and distinguish between 'file not
found' and 'file found but invalid'.

llvm-svn: 230839

9 years ago[MIPS] Add missing header for syscall
Petar Jovanovic [Sat, 28 Feb 2015 02:32:55 +0000 (02:32 +0000)]
[MIPS] Add missing header for syscall

The syscall function itself is declared in <unistd.h>
Compiling compiler-rt with -Werror-implicit-function-declaration will
cause a build failure. This change fixes it.

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

llvm-svn: 230838

9 years agoUnwind: make it build on Darwin again
Saleem Abdulrasool [Sat, 28 Feb 2015 02:23:54 +0000 (02:23 +0000)]
Unwind: make it build on Darwin again

The support for the LSB eh_frame_hdr extension was overzealous in trying to
include headers.  Be more careful to permit building on Darwin.

llvm-svn: 230837

9 years ago[RewriteStatepointsForGC] Reduce indentation via early continue [NFC]
Philip Reames [Sat, 28 Feb 2015 01:57:44 +0000 (01:57 +0000)]
[RewriteStatepointsForGC] Reduce indentation via early continue [NFC]

llvm-svn: 230836

9 years ago[RewriteStatepointsForGC] Fix another order of iteration bug
Philip Reames [Sat, 28 Feb 2015 01:52:09 +0000 (01:52 +0000)]
[RewriteStatepointsForGC] Fix another order of iteration bug

It turns out the naming of inserted phis and selects is sensative to the order in which two sets are iterated.  We need to nail this down to avoid non-deterministic output and possible test failures.

The modified test is the one I first noticed something odd in.  The change is making it more strict to report the error.  With the test change, but without the code change, the test fails roughly 1 in 5.  With the code change, I've run ~30 runs without error.

Long term, the right fix here is to adjust the naming scheme.  I'm checking in this hack to avoid any possible non-determinism in the tests over the weekend.  HJust because I only noticed one case doesn't mean it's actually the only case.  I hope to get to the right change Monday.

std->llvm data structure changes bugfix change #3

llvm-svn: 230835

9 years ago[modules] Deduplicate when merging lists of template specializations from imported...
Richard Smith [Sat, 28 Feb 2015 01:45:19 +0000 (01:45 +0000)]
[modules] Deduplicate when merging lists of template specializations from imported modules.

llvm-svn: 230834

9 years ago[ASan] debug_stacks.cc was passing on ARM by accident, disable this test there for...
Alexey Samsonov [Sat, 28 Feb 2015 01:35:46 +0000 (01:35 +0000)]
[ASan] debug_stacks.cc was passing on ARM by accident, disable this test there for now.

llvm-svn: 230833

9 years agoTemporarily XFAIL TestLaunchWithShellExpand to get the build green
Vince Harron [Sat, 28 Feb 2015 01:10:57 +0000 (01:10 +0000)]
Temporarily XFAIL TestLaunchWithShellExpand to get the build green

llvm-svn: 230832

9 years agoUse -fstandalone-debug for few tests to get around a Clang optimization
Vince Harron [Sat, 28 Feb 2015 01:07:50 +0000 (01:07 +0000)]
Use -fstandalone-debug for few tests to get around a Clang optimization

clang-3.5+ outputs FullDebugInfo by default for Darwin/FreeBSD targets.
Other targets do not, which causes several tests to fail.  This flag
enables FullDebugInfo for all targets.

Fixes the following tests:

TestCallStdStringFunction.py
TestDataFormatterSkipSummary.py
TestDataFormatterStdIterator.py
TestDataFormatterStdList.py
TestDataFormatterStdString.py
TestSBValuePersist.py
TestStringPrinter.py
TestTypeCompletion.py

llvm-svn: 230831

9 years agoRework our handling of key functions. We used to track a complete list of all
Richard Smith [Sat, 28 Feb 2015 01:01:56 +0000 (01:01 +0000)]
Rework our handling of key functions. We used to track a complete list of all
dynamic classes in the translation unit and check whether each one's key
function is defined when we got to the end of the TU (and when we got to the
end of each module). This is really terrible for modules performance, since it
causes unnecessary deserialization of every dynamic class in every compilation.

We now use a much simpler (and, in a modules build, vastly more efficient)
system: when we see an out-of-line definition of a virtual function, we check
whether that function was in fact its class's key function. (If so, we need to
emit the vtable.)

llvm-svn: 230830

9 years ago[RewriteStatepointsForGC] Reduce indentation via early continue [NFC]
Philip Reames [Sat, 28 Feb 2015 00:54:41 +0000 (00:54 +0000)]
[RewriteStatepointsForGC] Reduce indentation via early continue [NFC]

llvm-svn: 230829

9 years agoFixed pthread linking errors in test binaries
Vince Harron [Sat, 28 Feb 2015 00:51:06 +0000 (00:51 +0000)]
Fixed pthread linking errors in test binaries

Fixes these tests:

TestBreakAfterJoin.py
TestCreateDuringStep.py
TestExitDuringBreak.py
TestMultipleBreakpoints.py

llvm-svn: 230828

9 years ago[RewriteStatepointsForGC] Fix iterator invalidation bug
Philip Reames [Sat, 28 Feb 2015 00:47:50 +0000 (00:47 +0000)]
[RewriteStatepointsForGC] Fix iterator invalidation bug

Inserting into a DenseMap you're iterating over is not well defined.  This is unfortunate since this is well defined on a std::map.

"cleanup per llvm code style standards" bug #2

llvm-svn: 230827

9 years ago[dsymutil] Fully qualify llvm::make_unique<>.
Frederic Riss [Sat, 28 Feb 2015 00:42:37 +0000 (00:42 +0000)]
[dsymutil] Fully qualify llvm::make_unique<>.

llvm-svn: 230826

9 years ago[dsymutil] Add the DwarfStreamer class.
Frederic Riss [Sat, 28 Feb 2015 00:29:11 +0000 (00:29 +0000)]
[dsymutil] Add the DwarfStreamer class.

This class is responsible for getting the linked data to the
disk in the appropriate form. Today it it an empty shell that
just instantiates an MC layer.

As we do not put anything in the resulting file yet, we just
check it has the right architecture (and check that -o does
the right thing).

To be able to create all the components, this commit adds a
few dependencies to llvm-dsymutil, namely all-targets, MC and
AsmPrinter.

Also add a -no-output option, so that tests that do not need
the binary result can continue to run even if they do not have
the required target linked in.

llvm-svn: 230824

9 years ago[dsymutil] Add a LinkOptions struct to pass to the DwarfLinker. NFC.
Frederic Riss [Sat, 28 Feb 2015 00:29:07 +0000 (00:29 +0000)]
[dsymutil] Add a LinkOptions struct to pass to the DwarfLinker. NFC.

The only option we have to pass down currently is verbosity, but there
are more to come.

llvm-svn: 230823

9 years ago[dsymutil] clang-format a file
Frederic Riss [Sat, 28 Feb 2015 00:29:05 +0000 (00:29 +0000)]
[dsymutil] clang-format a file

llvm-svn: 230822

9 years ago[dsymutil] Add -o option to select ouptut filename
Frederic Riss [Sat, 28 Feb 2015 00:29:03 +0000 (00:29 +0000)]
[dsymutil] Add -o option to select ouptut filename

We do not create the output file yet, so no means to test.

llvm-svn: 230821

9 years ago[dsymutil] Create warn() global helper...
Frederic Riss [Sat, 28 Feb 2015 00:29:01 +0000 (00:29 +0000)]
[dsymutil] Create warn() global helper...

...and reimplement DwarfLinker::reportWarning in terms of it. Other
compenents than the DwarfLinker will need to report warnings, and I'm
about to add a similar "error()" helper at the same global level so
make that consistent.

llvm-svn: 230820

9 years ago[dsymutil] Make trivial accessor const.
Frederic Riss [Sat, 28 Feb 2015 00:28:56 +0000 (00:28 +0000)]
[dsymutil] Make trivial accessor const.

llvm-svn: 230819

9 years ago[RewriteStatepointsForGC] Add tests for the base pointer identification algorithm
Philip Reames [Sat, 28 Feb 2015 00:20:48 +0000 (00:20 +0000)]
[RewriteStatepointsForGC] Add tests for the base pointer identification algorithm

These tests cover the 'base object' identification and rewritting portion of RewriteStatepointsForGC.  These aren't completely exhaustive, but they've proven to be reasonable effective over time at finding regressions.

In the process of porting these tests over, I found my first "cleanup per llvm code style standards" bug.  We were relying on the order of iteration when testing the base pointers found for a derived pointer.  When we switched from std::set to DenseSet, this stopped being a safe assumption.  I'm suspecting I'm going to find more of those.  In particular, I'm now really wondering about the main iteration loop for this algorithm.  I need to go take a closer look at the assumptions there.

I'm not really happy with the fact these are testing what is essentially debug output (i.e. enabled via command line flags).  Suggestions for how to structure this better are very welcome.

llvm-svn: 230818

9 years agoCasting pid to ::pid_t when invoking syscall.
Chaoren Lin [Sat, 28 Feb 2015 00:20:16 +0000 (00:20 +0000)]
Casting pid to ::pid_t when invoking syscall.

Summary:
syscalls involving pid/tid on 32 bit binaries are failing with
"Invalid argument" because the uint64_t arguments are too wide.

Reviewers: clayborg, ovyalov, sivachandra

Subscribers: lldb-commits

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

llvm-svn: 230817

9 years agoDebugInfo: hoist definition into global context when needed
Saleem Abdulrasool [Sat, 28 Feb 2015 00:13:13 +0000 (00:13 +0000)]
DebugInfo: hoist definition into global context when needed

When generating debug info for a static inline member which is initialized for
the DLLExport storage class, hoist the definition into a non-composite type
context. Otherwise, we would trigger an assertion when generating the DIE for
the associated global value as the debug context has a type association. This
addresses PR22669.

Thanks to David Blakie for help in coming up with a solution to this!

llvm-svn: 230816

9 years agoDo s/_context/_ctx/ to Resolver.cpp.
Rui Ueyama [Fri, 27 Feb 2015 23:40:00 +0000 (23:40 +0000)]
Do s/_context/_ctx/ to Resolver.cpp.

llvm-svn: 230814