1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
Commit Graph

100931 Commits

Author SHA1 Message Date
JF Bastien
7b4336be97 Fix datalayout test that I broke with my previous LinkModules warning improvement.
llvm-svn: 203011
2014-03-05 21:37:08 +00:00
JF Bastien
217680735f Improve LinkModules warnings
Provide triple and data layout as well as module names (or empty string) when there's a mismatch.

Differential Revision: http://llvm-reviews.chandlerc.com/D2971

llvm-svn: 203009
2014-03-05 21:26:42 +00:00
Arnold Schwaighofer
adebac793b LoopVectorizer: Preserve fast-math flags
Fixes PR19045.

llvm-svn: 203008
2014-03-05 21:10:47 +00:00
Rafael Espindola
d987164eed Always print the implicit .text at the start of an asm file.
Before llvm-mc would print it, but llc was assuming that it would produce
another section changing directive before one was needed. That assumption is
false with inline asm.

Fixes PR19049.

Another option would be to always create the section, but in the asm printer
avoid printing sections changes during initialization. That would work, but
* We do use the fact that llvm-mc prints it in testing. The tests can be changed
  if needed.
* A quick poll on IRC suggest that most developers prefer the implicit .text to
  be printed.

llvm-svn: 203001
2014-03-05 20:09:15 +00:00
Ben Langmuir
e1c9edcf79 Fix an inconsistency in treatment of trailing / in path::const_iterator
When using a //net/ path, we were transforming the trailing / into a '.'
when the path was just the root path and we were iterating backwards.
Forwards iteration and other kinds of root path (C:\, /) were already
correct.

llvm-svn: 202999
2014-03-05 19:56:30 +00:00
Benjamin Kramer
d21655534b ConstantFolding: Also fold the vector overloads of our math intrinsics.
llvm-svn: 202997
2014-03-05 19:41:48 +00:00
Cameron McInally
80fa2d42e5 Lower AVX v4i64->v4i32 truncate to one shuffle.
llvm-svn: 202996
2014-03-05 19:41:16 +00:00
David Blaikie
c4f7318790 Fix clang -Werror build break due to mismatched sign comparison.
Originally committed in r202985.

llvm-svn: 202992
2014-03-05 18:53:36 +00:00
Hans Wennborg
2cf252b12d Work around MSVC bug in IntrusiveRefCntPtr.h
The build was failing with:

  error C2664: 'std::atomic_int::atomic_int(const std::atomic_int &)' : cannot convert argument 1 from 'int' to 'const std::atomic_int &'

Apparently "std::atomic_int x(0)" doesn't work, but "std::atomic<int> x(0)"
does.

llvm-svn: 202988
2014-03-05 16:26:04 +00:00
Oliver Stannard
6aa486598a ARM: Correctly align arguments after a byval struct is passed on the stack
llvm-svn: 202985
2014-03-05 15:25:27 +00:00
Ben Langmuir
9d2ef01bfd Add a ThreadSafeRefCountedBase
A version of RefCountedBase that uses std::atomic_int to store its
reference count.

llvm-svn: 202984
2014-03-05 15:24:33 +00:00
Tobias Grosser
429c202231 [LangRef] Improve llvm.mem.parallel_loop_access example
The following changes have been applied:

  - Removed 'align 4'. We can simplify this away, as it does not provide useful
    information in the example.
  - Use named instructions instead of '%0'. This is nicer, but more importantly
    this makes the IR valid. Before we had two assignments to %0 in a single
    example.
  - Add a missing branch instruction to make the loop structure clear.
  - Move one access into outer.for.body to make it not look that empty.
  - The statments that are only in the outer loop body should not reference the
    inner loop metadata, but only the outer loop. Only statements in both loops
    should reference both surrounding loops.
  - Rename the array indexes to make them all independent. Before there were
    identical array indexes in the inner and the outer loop. We want to
    avoid this special case as it may lead to confusion.

llvm-svn: 202973
2014-03-05 13:36:04 +00:00
Joerg Sonnenberger
b500454592 Enable integrated assembler on OpenBSD/PPC32 by default, too.
From Brad Smith.

llvm-svn: 202967
2014-03-05 11:37:04 +00:00
Vladimir Medic
5c28631a7b This patch implements .set dsp directive and sets appropriate feature bits.This directive is a counterpart of -mattr=dsp command line option with the exception that it does not influence elf header flags. The usage example is gives in test file.
llvm-svn: 202966
2014-03-05 11:05:09 +00:00
Tobias Grosser
97311619e7 Add missing parenthesis in SCEV comment
Contributed-by: Michael Zolutukin <mzolotukhin@apple.com>
llvm-svn: 202963
2014-03-05 10:37:17 +00:00
Chandler Carruth
f22ae5cb70 [Layering] Move AutoUpgrade.h into the IR library where its
implementation already lives.

llvm-svn: 202961
2014-03-05 10:34:14 +00:00
Chandler Carruth
797ae6fd0d [Layering] Move DebugLoc.h into the IR library. The implementation
already lived there and it is where it belongs -- this is the in-memory
debug location representation.

This is just cleanup -- Modules can actually cope with this, but that
doesn't make it right. After chatting with folks that have out-of-tree
stuff, going ahead and moving the rest of the headers seems preferable.

llvm-svn: 202960
2014-03-05 10:30:38 +00:00
Ahmed Charles
afa05d8aeb [C++11] Add overloads for externally used OwningPtr functions.
This will allow external callers of these functions to switch over time
rather than forcing a breaking change all a once. These particular
functions were determined by building clang/lld/lldb.

llvm-svn: 202959
2014-03-05 10:27:34 +00:00
Chandler Carruth
0e2a8390e0 [C++11] Make this interface accept const Use pointers and use override
to ensure we don't mess up any of the overrides. Necessary for cleaning
up the Value use iterators and enabling range-based traversing of use
lists.

llvm-svn: 202958
2014-03-05 10:21:48 +00:00
Ahmed Charles
4a96a15754 [C++11] Replace OwningPtr::take() with OwningPtr::release().
llvm-svn: 202957
2014-03-05 10:19:29 +00:00
Craig Topper
a3683ec835 [C++11] Add 'override' keyword to virtual methods that override their base class.
llvm-svn: 202953
2014-03-05 09:10:37 +00:00
Ahmed Charles
4393ae106a [C++11] Add release() to OwningPtr.
This will make the transition to unique_ptr easier by allowing more
incremental changes.

llvm-svn: 202949
2014-03-05 08:25:08 +00:00
Craig Topper
7208edb1c2 [C++11] Add 'override' keyword to virtual methods that override their base class.
llvm-svn: 202946
2014-03-05 07:52:44 +00:00
Craig Topper
4c58d1a8e2 [C++11] Add 'override' keyword to virtual methods that override their base class.
llvm-svn: 202945
2014-03-05 07:30:04 +00:00
Andrew Trick
bcd20c0c29 Make stackmap machineinstrs clobber the scratch regs too.
Patchpoints already did this. Doing it for stackmaps is a convenience
for the runtime in the event that it needs to scratch register to
patch or perform a runtime call thunk.

Unlike patchpoints, we just assume the AnyRegCC calling
convention. This is the only language and target independent calling
convention specific to stackmaps so makes sense.  Although the calling
convention is not currently used to select the scratch registers.

llvm-svn: 202943
2014-03-05 07:08:16 +00:00
Craig Topper
fd9ff0b3ba [C++11] Add 'override' keyword to IR library.
llvm-svn: 202939
2014-03-05 06:35:38 +00:00
Craig Topper
ade780fb82 [C++11] Add 'override' keywords to tablegen code.
llvm-svn: 202937
2014-03-05 05:17:42 +00:00
Peter Zotov
f65408e7e0 [C API] Implement LLVM{Get,Set}Alignment for AllocaInst.
Patch by Manuel Jacob.

llvm-svn: 202936
2014-03-05 05:05:34 +00:00
Ahmed Charles
b597077d38 Remove unnecessary variables.
Found self-hosting clang-cl on windows. :)

llvm-svn: 202935
2014-03-05 05:04:00 +00:00
Hans Wennborg
697242b65f Fix unused variable in FunctionLoweringInfo.cpp
llvm-svn: 202932
2014-03-05 03:21:23 +00:00
Hans Wennborg
c1cb270dba Check for dynamic allocas and inline asm that clobbers sp before building
selection dag (PR19012)

In X86SelectionDagInfo::EmitTargetCodeForMemcpy we check with MachineFrameInfo
to make sure that ESI isn't used as a base pointer register before we choose to
emit rep movs (which clobbers esi).

The problem is that MachineFrameInfo wouldn't know about dynamic allocas or
inline asm that clobbers the stack pointer until SelectionDAGBuilder has
encountered them.

This patch fixes the problem by checking for such things when building the
FunctionLoweringInfo.

Differential Revision: http://llvm-reviews.chandlerc.com/D2954

llvm-svn: 202930
2014-03-05 02:43:26 +00:00
Reid Kleckner
de98f5a0e8 Change x86mmx -> x86_mmx in LangRef.rst
The correct name of the type in LLVM assembly is "x86_mmx".  Also remove
the reST label "t_x86mmx" because it was unused anyway.

Patch by Manuel Jacob!

Differential Revision: http://llvm-reviews.chandlerc.com/D2955

llvm-svn: 202929
2014-03-05 02:41:37 +00:00
Reid Kleckner
7782936f66 C API: Add functions to get or set a GlobalValue's DLLStorageClass
Patch by Manuel Jacob!

llvm-svn: 202928
2014-03-05 02:34:23 +00:00
Reid Kleckner
dd79194a8c LangRef: Remove stale docs on LLVM types in module structure
The distinction between "identified" and "literal" struct types is fully
documented in a later section.

Patch by Philip Reames!

llvm-svn: 202927
2014-03-05 02:21:50 +00:00
Eric Christopher
a4c735407f Make the DIEValue constructor even more explicit.
llvm-svn: 202926
2014-03-05 02:14:02 +00:00
Raul E. Silvera
5c6e05e158 Trivial test commit.
llvm-svn: 202924
2014-03-05 02:09:51 +00:00
Chandler Carruth
58baa90797 [C++11] Sink the iterator over a Value's users into the Value type
itself and teach it to convert between the non-const and const variants.
De-templatetize its usage in APIs to just use the const variant which
always works for those use cases. Also, rename its implementation to
reflect that it is an iterator over *users* not over *uses*.

This is a step toward providing both iterator and range support for
walking the *uses* distinct from the *users*. In a subsequent patch this
will get renamed to make it clear that this is an adaptor over the
fundamental use iterator.

llvm-svn: 202923
2014-03-05 01:50:35 +00:00
Eric Christopher
33061eff22 Use a bool for whether or not an abbreviation has children rather than
using a full uint16_t with the flag value... which happens to be
0 or 1. Update the class for bool values and rename functions slightly.

llvm-svn: 202921
2014-03-05 01:44:58 +00:00
Eric Christopher
1efc07f4d2 Use dwarf::Attribute instead of a bare uint16_t.
llvm-svn: 202920
2014-03-05 01:10:59 +00:00
Eric Christopher
25107becc9 Expand slightly on comment.
llvm-svn: 202919
2014-03-05 00:43:43 +00:00
Eric Christopher
239495d10b Unindent namespace.
llvm-svn: 202918
2014-03-05 00:43:41 +00:00
Eric Christopher
1305fe06cc Update comment.
llvm-svn: 202917
2014-03-05 00:43:38 +00:00
Rui Ueyama
0c4a6814d3 Partially roll back r202915.
I did not intend to cast a pointer to ulittle32_t there because the return
type is const void*.

llvm-svn: 202916
2014-03-05 00:43:02 +00:00
Rui Ueyama
4703f66aae Fix endianness bug.
Looks like llvm-readobj is the only customer of this code, and apparently
there's no test to cover this function. I'll write it after finishing
plumbing from llvm-objdump to there.

llvm-svn: 202915
2014-03-05 00:32:34 +00:00
Matt Arsenault
8f8e2f957e Allow constant folding of fma and fmuladd
llvm-svn: 202914
2014-03-05 00:02:00 +00:00
Matt Arsenault
7ae64140ae Fix duplicate code in ConstantFolding
llvm-svn: 202913
2014-03-05 00:01:58 +00:00
Adam Nemet
432d40e686 [DAGCombiner] Factor out distributeTruncateThroughAnd
Currently this code is duplicated across visitSHL, visitSRA and visitSRL.  The
plan is to add rotates as clients to this new function.

There is no functional change intended here.

llvm-svn: 202908
2014-03-04 23:28:31 +00:00
Evan Cheng
87c4b55600 Remove a special character in comment that accidentially got committed.
llvm-svn: 202905
2014-03-04 22:56:57 +00:00
Richard Smith
ef4019bc68 Remove dependence on std::function.
llvm-svn: 202902
2014-03-04 22:13:07 +00:00
Richard Smith
9fdbb897e9 Add support for arbitrary functors to CrashRecoveryContext.
llvm-svn: 202895
2014-03-04 21:48:49 +00:00