oota-llvm.git
10 years agoFix the new LTOCodeGenerator setup in gold to parse options before using MAttrs.
Tom Roeder [Thu, 26 Jun 2014 20:43:27 +0000 (20:43 +0000)]
Fix the new LTOCodeGenerator setup in gold to parse options before using MAttrs.

This fixes a regression that made clang -flto -Wl,--plugin-opt=-mattr=+aes not
pass the "+aes" option to the LTOCodeGenerator attributes.

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

10 years agoGVN: Preserve invariant.load metadata
Arnold Schwaighofer [Thu, 26 Jun 2014 19:51:19 +0000 (19:51 +0000)]
GVN: Preserve invariant.load metadata

If both instructions to be replaced are marked invariant the resulting
instruction is invariant.

rdar://13358910

Fix by Erik Eckstein!

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

10 years agoRemove extraneous includes from the target machines.
Eric Christopher [Thu, 26 Jun 2014 19:30:05 +0000 (19:30 +0000)]
Remove extraneous includes from the target machines.

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

10 years agoMove all of the ARM subtarget features down onto the subtarget
Eric Christopher [Thu, 26 Jun 2014 19:30:02 +0000 (19:30 +0000)]
Move all of the ARM subtarget features down onto the subtarget
rather than the target machine.

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

10 years agoMove the frame lowering constructors out of line to avoid circular
Eric Christopher [Thu, 26 Jun 2014 19:29:59 +0000 (19:29 +0000)]
Move the frame lowering constructors out of line to avoid circular
includes.

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

10 years agoChanged Phab 'CC' to 'subscriber'; fixed typo
Sanjay Patel [Thu, 26 Jun 2014 18:12:42 +0000 (18:12 +0000)]
Changed Phab 'CC' to 'subscriber'; fixed typo

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

10 years agoR600/SI: Add FP mode bits to binary.
Matt Arsenault [Thu, 26 Jun 2014 17:22:30 +0000 (17:22 +0000)]
R600/SI: Add FP mode bits to binary.

The default rounding mode to initialize the mode register needs
to be reported to the runtime. Fill in other bits a kernel
may be interested in setting for future use.

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

10 years agoSilencing a warning about isZExtFree hiding an inherited virtual function. No functio...
Aaron Ballman [Thu, 26 Jun 2014 13:45:47 +0000 (13:45 +0000)]
Silencing a warning about isZExtFree hiding an inherited virtual function. No functional change intended.

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

10 years agoSilence a warning due to a comparison between signed and unsigned.
Andrea Di Biagio [Thu, 26 Jun 2014 13:41:10 +0000 (13:41 +0000)]
Silence a warning due to a comparison between signed and unsigned.

No functional change intended.

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

10 years agoAdd support for ppc64/power8 as a host
Will Schmidt [Thu, 26 Jun 2014 13:37:03 +0000 (13:37 +0000)]
Add support for ppc64/power8 as a host

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

10 years agoadd ppc64/pwr8 as target
Will Schmidt [Thu, 26 Jun 2014 13:36:19 +0000 (13:36 +0000)]
add ppc64/pwr8 as target
includes handling DIR_PWR8 where appropriate
The P7Model Itinerary is currently tied in for use under the P8Model, and will be updated later.

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

10 years agoAdded parsing co-processor names starting with "cr"
Renato Golin [Thu, 26 Jun 2014 13:10:53 +0000 (13:10 +0000)]
Added parsing co-processor names starting with "cr"

Additional compliant GAS names for coprocessor register name
are enabled for all instruction with parameter MCK_CoprocReg:
LDC,LDC2,STC,STC2,CDP,CDP2,MCR,MCR2,MCRR,MCRR2,MRC,MRC2,MRRC,MRRC2

Patch by Andrey Kuharev.

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

10 years ago[X86] Improve the selection of SSE3/AVX addsub instructions.
Andrea Di Biagio [Thu, 26 Jun 2014 10:45:21 +0000 (10:45 +0000)]
[X86] Improve the selection of SSE3/AVX addsub instructions.

This patch teaches the backend how to canonicalize a shuffle vectors
according to the rule:

 - (shuffle (FADD A, B), (FSUB A, B), Mask) ->
       (shuffle (FSUB A, -B), (FADD A, -B), Mask)

Where 'Mask' is:
  <0,5,2,7>            ;; for v4f32 and v4f64 shuffles.
  <0,3>                ;; for v2f64 shuffles.
  <0,9,2,11,4,13,6,15> ;; for v8f32 shuffles.

In general, ISel only knows how to pattern-match a canonical
'fadd + fsub + blendi' dag node sequence into an ADDSUB instruction.

This new rule allows to convert a non-canonical dag sequence into a
canonical one that will be matched by a single ADDSUB at ISel stage.

The idea of converting a non-canonical ADDSUB into a canonical one by
swapping the first two operands of the shuffle, and then negating the
second operand of the FADD and FSUB, was originally proposed by Hal Finkel.

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

10 years agoThis patch removed duplicate code for matching patterns
Dinesh Dwivedi [Thu, 26 Jun 2014 08:57:33 +0000 (08:57 +0000)]
This patch removed duplicate code for matching patterns
which are now handled in SimplifyUsingDistributiveLaws()
(after r211261)

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

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

10 years agoAdded instruction combine to transform few more negative values addition to subtracti...
Dinesh Dwivedi [Thu, 26 Jun 2014 05:40:22 +0000 (05:40 +0000)]
Added instruction combine to transform few more negative values addition to subtraction (Part 2)
This patch enables transforms for

(x + (~(y | c) + 1)   -->   x - (y | c) if c is even

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

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

10 years agoGlobalOpt: Don't optimize thread_local for initializers
David Majnemer [Thu, 26 Jun 2014 03:02:19 +0000 (03:02 +0000)]
GlobalOpt: Don't optimize thread_local for initializers

Folding a reference to a thread_local variable into another global
variable's initializer is very problematic, there is no relocation that
exists to represent such an access.

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

10 years agoR600: Fix vector FMA
Matt Arsenault [Thu, 26 Jun 2014 01:28:05 +0000 (01:28 +0000)]
R600: Fix vector FMA

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

10 years agoRemove forward decl of SmallVectorImpl now that we have the header
Reid Kleckner [Thu, 26 Jun 2014 01:03:20 +0000 (01:03 +0000)]
Remove forward decl of SmallVectorImpl now that we have the header

Follow up to r211749.

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

10 years agoDon't build switch tables for dllimport and TLS variables in GEPs
Hans Wennborg [Thu, 26 Jun 2014 00:30:52 +0000 (00:30 +0000)]
Don't build switch tables for dllimport and TLS variables in GEPs

This is a follow-up to r211331, which failed to notice that we were
returning early from ValidLookupTableConstant for GEPs.

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

10 years agoMSVC build fix following r211749
Alp Toker [Thu, 26 Jun 2014 00:25:41 +0000 (00:25 +0000)]
MSVC build fix following r211749

Avoid strndup()

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

10 years ago[X86] AVX512: Fix asm syntax for packed vcmp
Adam Nemet [Thu, 26 Jun 2014 00:21:12 +0000 (00:21 +0000)]
[X86] AVX512: Fix asm syntax for packed vcmp

The *_alt defs for vcmp are used by the InstParser (the asm string in the main
def is used by the InstPrinter) .  The former was accepting vector registers
as destination rather than mask registers.

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

10 years agoIntroduce a string_ostream string builder facilty
Alp Toker [Thu, 26 Jun 2014 00:00:48 +0000 (00:00 +0000)]
Introduce a string_ostream string builder facilty

string_ostream is a safe and efficient string builder that combines opaque
stack storage with a built-in ostream interface.

small_string_ostream<bytes> additionally permits an explicit stack storage size
other than the default 128 bytes to be provided. Beyond that, storage is
transferred to the heap.

This convenient class can be used in most places an
std::string+raw_string_ostream pair or SmallString<>+raw_svector_ostream pair
would previously have been used, in order to guarantee consistent access
without byte truncation.

The patch also converts much of LLVM to use the new facility. These changes
include several probable bug fixes for truncated output, a programming error
that's no longer possible with the new interface.

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

10 years agoFor CrashRecoveryContext::RunSafelyOnThread, propagate Darwin's PRIO_DARWIN_BG to...
Argyrios Kyrtzidis [Wed, 25 Jun 2014 23:54:50 +0000 (23:54 +0000)]
For CrashRecoveryContext::RunSafelyOnThread, propagate Darwin's PRIO_DARWIN_BG to the new thread if it is
set on the calling thread.

This allows libclang's indexing threads to propagate their priority to the clang module building threads.

rdar://17459872

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

10 years agoFix typo
Michael Liao [Wed, 25 Jun 2014 23:39:08 +0000 (23:39 +0000)]
Fix typo

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

10 years ago[FastISel][X86] More refactoring of select lowering and XALU folding. NFC.
Juergen Ributzka [Wed, 25 Jun 2014 22:50:59 +0000 (22:50 +0000)]
[FastISel][X86] More refactoring of select lowering and XALU folding. NFC.

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

10 years agoThe includes were sorted. Revert r210578.
Eric Christopher [Wed, 25 Jun 2014 22:36:37 +0000 (22:36 +0000)]
The includes were sorted. Revert r210578.

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

10 years ago[FastISel][X86] Refactor XALU folding. NFC.
Juergen Ributzka [Wed, 25 Jun 2014 22:17:23 +0000 (22:17 +0000)]
[FastISel][X86] Refactor XALU folding. NFC.

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

10 years agoMention that Phabricator users should subscribe to *-commits
Reid Kleckner [Wed, 25 Jun 2014 20:25:21 +0000 (20:25 +0000)]
Mention that Phabricator users should subscribe to *-commits

This probably explains why a lot of messages get lost for first time
Phabricator users.

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

10 years ago[FastISel][X86] Only fold the cmp into the select when both instructions are in the...
Juergen Ributzka [Wed, 25 Jun 2014 20:06:12 +0000 (20:06 +0000)]
[FastISel][X86] Only fold the cmp into the select when both instructions are in the same basic block.

If the cmp is in a different basic block, then it is possible that not all
operands of that compare have defined registers. This can happen when one of
the operands to the cmp is a load and the load gets folded into the cmp. In
this case FastISel will skip the load instruction and the vreg is never
defined.

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

10 years agoMerge the used symbol scanning of MCObjectStreamer and RecordStreamer.
Rafael Espindola [Wed, 25 Jun 2014 18:37:33 +0000 (18:37 +0000)]
Merge the used symbol scanning of MCObjectStreamer and RecordStreamer.

This completes the refactoring of RecordStreamer.

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

10 years agoRevert "PR20038: DebugInfo: Inlined call sites where the caller has debug info but...
David Blaikie [Wed, 25 Jun 2014 18:20:54 +0000 (18:20 +0000)]
Revert "PR20038: DebugInfo: Inlined call sites where the caller has debug info but the call itself has no debug location."

This reverts commit r211723.

Breaks the ASan/compiler-rt build... guess I didn't test very far at all
:/.

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

10 years agoPR20038: DebugInfo: Inlined call sites where the caller has debug info but the call...
David Blaikie [Wed, 25 Jun 2014 18:03:10 +0000 (18:03 +0000)]
PR20038: DebugInfo: Inlined call sites where the caller has debug info but the call itself has no debug location.

This situation does bad things when inlined, so I've fixed Clang not to
produce inlinable call sites without locations when the caller has debug
info (in the one case where I could find that this occurred). This
updates the PR20038 test case to be what clang now produces, and readds
the assertion that had to be removed due to this bug.

I've also beefed up the debug info verifier to help diagnose these
issues in the future, and I hope to add checks to the inliner to just
assert-fail if it encounters this situation. If, in the future, we
decide we have to cope with this situation, the right thing to do is
probably to just remove all the DebugLocs from the inlined instructions.

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

10 years agoAdd Rpass-missed and Rpass-analysis reports to the loop vectorizer. The remarks give...
Tyler Nowicki [Wed, 25 Jun 2014 17:50:15 +0000 (17:50 +0000)]
Add Rpass-missed and Rpass-analysis reports to the loop vectorizer. The remarks give the vector width of vectorized loops and a brief analysis of loops that fail to be vectorized. For example, an analysis will be generated for loops containing control flow that cannot be simplified to a select. The optimization remarks also give the debug location of expressions that cannot be vectorized, for example the location of an unvectorizable call.

Reviewed by: Arnold Schwaighofer

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

10 years ago[X86] Always prefer to lower a VECTOR_SHUFFLE into a BLENDI instead of SHUFP (or...
Andrea Di Biagio [Wed, 25 Jun 2014 17:41:58 +0000 (17:41 +0000)]
[X86] Always prefer to lower a VECTOR_SHUFFLE into a BLENDI instead of SHUFP (or VPERM2X128).

This patch teaches method 'LowerVECTOR_SHUFFLE' to give higher precedence to
the check for 'isBlendMask'; the idea is that, when possible, we should firstly
check if a shuffle performs a blend, and in case, try to lower it into a BLENDI
instead of selecting a SHUFP or (worse) a VPERM2X128.

In general:
 - AVX VBLENDPS/D always have better latency and throughput than VPERM2F128;
 - BLENDPS/D instructions tend to always have better 'reciprocal throughput'
   than the equivalent SHUFPS/D;
 - Both BLENDPS/D and SHUFPS/D are often decoded into the same number of
   m-ops; however, a m-op obtained from a BLENDPS/D can be scheduled to more
   than one execution port.

This patch:
 - Moves the check for 'isBlendMask' immediately before the check for
   'isSHUFPMask' within method 'LowerVECTOR_SHUFFLE';
 - Updates existing tests for sse/avx shuffle/blend instructions to verify
   that we select (v)blendps/d when possible (instead of (v)shufps/d or
   vperm2f128).

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

10 years agoFix indentation.
Juergen Ributzka [Wed, 25 Jun 2014 16:49:37 +0000 (16:49 +0000)]
Fix indentation.

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

10 years agoFix the build.
Rafael Espindola [Wed, 25 Jun 2014 15:47:36 +0000 (15:47 +0000)]
Fix the build.

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

10 years agoMove expression visitation logic up to MCStreamer.
Rafael Espindola [Wed, 25 Jun 2014 15:45:33 +0000 (15:45 +0000)]
Move expression visitation logic up to MCStreamer.

Remove the duplicate from MCRecordStreamer. No functionality change.

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

10 years agoAdd some test files for r211710.
Eli Bendersky [Wed, 25 Jun 2014 15:41:39 +0000 (15:41 +0000)]
Add some test files for r211710.

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

10 years agoRename loop unrolling and loop vectorizer metadata to have a common prefix.
Eli Bendersky [Wed, 25 Jun 2014 15:41:00 +0000 (15:41 +0000)]
Rename loop unrolling and loop vectorizer metadata to have a common prefix.

[LLVM part]

These patches rename the loop unrolling and loop vectorizer metadata
such that they have a common 'llvm.loop.' prefix.  Metadata name
changes:

llvm.vectorizer.* => llvm.loop.vectorizer.*
llvm.loopunroll.* => llvm.loop.unroll.*

This was a suggestion from an earlier review
(http://reviews.llvm.org/D4090) which added the loop unrolling
metadata.

Patch by Mark Heffernan.

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

10 years agoFix = delete in MSVC build from r211705
JF Bastien [Wed, 25 Jun 2014 15:38:02 +0000 (15:38 +0000)]
Fix = delete in MSVC build from r211705

MSVC doesn't support = delete yet, use LLVM_DELETED_FUNCTION instead.

Related to: http://reviews.llvm.org/D3390

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

10 years agoSimplify the visitation of target expressions. No functionality change.
Rafael Espindola [Wed, 25 Jun 2014 15:29:54 +0000 (15:29 +0000)]
Simplify the visitation of target expressions. No functionality change.

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

10 years agoRandom Number Generator (llvm)
JF Bastien [Wed, 25 Jun 2014 15:21:42 +0000 (15:21 +0000)]
Random Number Generator (llvm)

Provides an abstraction for a random number generator (RNG) that produces a stream of pseudo-random numbers.
The current implementation uses C++11 facilities and is therefore not cryptographically secure.

The RNG is salted with the text of the current command line invocation.
In addition, a user may specify a seed (reproducible builds).

In clang, the seed can be set via

-frandom-seed=X
In the back end, the seed can be set via

-rng-seed=X
This is the llvm part of the patch.
clang part: D3391

URL: http://reviews.llvm.org/D3390
Author: yln

I'm landing this for the second time, it broke Windows bots the first time around.

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

10 years agoSimplify AddValueSymbols. No functionality change.
Rafael Espindola [Wed, 25 Jun 2014 14:42:14 +0000 (14:42 +0000)]
Simplify AddValueSymbols. No functionality change.

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

10 years ago[msan] Fix bad interaction between with-calls mode and chained origin tracking.
Evgeniy Stepanov [Wed, 25 Jun 2014 14:41:57 +0000 (14:41 +0000)]
[msan] Fix bad interaction between with-calls mode and chained origin tracking.

Origin history should only be recorded for uninitialized values, because it is
meaningless otherwise. This change moves __msan_chain_origin to the runtime
library side and makes it conditional on the corresponding shadow value.

Previous code was correct, but _very_ inefficient.

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

10 years agoDon't leak a file descriptor.
Rafael Espindola [Wed, 25 Jun 2014 14:35:59 +0000 (14:35 +0000)]
Don't leak a file descriptor.

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

10 years agoCode cleanup.
Logan Chien [Wed, 25 Jun 2014 13:46:17 +0000 (13:46 +0000)]
Code cleanup.

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

10 years agoAdd Polly to the ignored trees.
Chandler Carruth [Wed, 25 Jun 2014 13:13:36 +0000 (13:13 +0000)]
Add Polly to the ignored trees.

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

10 years ago[x86] Add intrinsics for the pshufd, pshuflw, and pshufhw instructions.
Chandler Carruth [Wed, 25 Jun 2014 13:12:54 +0000 (13:12 +0000)]
[x86] Add intrinsics for the pshufd, pshuflw, and pshufhw instructions.

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

10 years agoRe-apply r211399, "Generate native unwind info on Win64" with a fix to ignore SEH...
NAKAMURA Takumi [Wed, 25 Jun 2014 12:41:52 +0000 (12:41 +0000)]
Re-apply r211399, "Generate native unwind info on Win64" with a fix to ignore SEH pseudo ops in X86 JIT emitter.

--
This patch enables LLVM to emit Win64-native unwind info rather than
DWARF CFI.  It handles all corner cases (I hope), including stack
realignment.

Because the unwind info is not flexible enough to describe stack frames
with a gap of unknown size in the middle, such as the one caused by
stack realignment, I modified register spilling code to place all spills
into the fixed frame slots, so that they can be accessed relative to the
frame pointer.

Patch by Vadim Chugunov!

Reviewed By: rnk

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

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

10 years agoReformat.
NAKAMURA Takumi [Wed, 25 Jun 2014 12:40:56 +0000 (12:40 +0000)]
Reformat.

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

10 years ago[X86] Add target combine rule to select ADDSUB instructions from a build_vector
Andrea Di Biagio [Wed, 25 Jun 2014 10:02:21 +0000 (10:02 +0000)]
[X86] Add target combine rule to select ADDSUB instructions from a build_vector

This patch teaches the backend how to combine a build_vector that implements
an 'addsub' between packed float vectors into a sequence of vector add
and vector sub followed by a VSELECT.

The new VSELECT is expected to be lowered into a BLENDI.
At ISel stage, the sequence 'vector add + vector sub + BLENDI' is
pattern-matched against ISel patterns added at r211427 to select
'addsub' instructions.
Added three more ISel patterns for ADDSUB.

Added test sse3-avx-addsub-2.ll to verify that we correctly emit 'addsub'
instructions.

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

10 years agoFactor out part of LICM::sink into a helper function.
Evgeniy Stepanov [Wed, 25 Jun 2014 09:17:21 +0000 (09:17 +0000)]
Factor out part of LICM::sink into a helper function.

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

10 years agoFix unresolved symbols when loading gold plugin
Alexey Volkov [Wed, 25 Jun 2014 08:04:58 +0000 (08:04 +0000)]
Fix unresolved symbols when loading gold plugin

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

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

10 years ago[LICM] Don't create more than one copy of an instruction per loop exit block when...
Evgeniy Stepanov [Wed, 25 Jun 2014 07:54:58 +0000 (07:54 +0000)]
[LICM] Don't create more than one copy of an instruction per loop exit block when sinking.

Fixes exponential compilation complexity in PR19835, caused by
LICM::sink not handling the following pattern well:

f = op g
e = op f, g
d = op e
c = op d, e
b = op c
a = op b, c

When an instruction with N uses is sunk, each of its operands gets N
new uses (all of them - phi nodes). In the example above, if a had 1
use, c would have 2, e would have 4, and g would have 8.

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

10 years agoFix another asserting method in the null streamer.
Rafael Espindola [Wed, 25 Jun 2014 05:37:58 +0000 (05:37 +0000)]
Fix another asserting method in the null streamer.

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

10 years agoFix a regression from r211653.
Rafael Espindola [Wed, 25 Jun 2014 05:31:22 +0000 (05:31 +0000)]
Fix a regression from r211653.

The method was empty in the null streamer but I mistakenly replaced it with
the aborting one in MCStreamer.

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

10 years agoMCNullStreamer.cpp: Roll back a few empty methods that have been marked as unreachabl...
NAKAMURA Takumi [Wed, 25 Jun 2014 04:34:36 +0000 (04:34 +0000)]
MCNullStreamer.cpp: Roll back a few empty methods that have been marked as unreachable in MCStreamer.cpp.

  void EmitCOFFSecRel32(MCSymbol const *Symbol) override {}
  void EmitGPRel32Value(const MCExpr *Value) override {}

It should fix crash like "llc -mtriple=i686-cygwin -filetype=null".

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

10 years agoCodeGen/X86/pr20088.ll: Add -march=x86-64, or llc fails due to non-x86 default target.
NAKAMURA Takumi [Wed, 25 Jun 2014 03:05:47 +0000 (03:05 +0000)]
CodeGen/X86/pr20088.ll: Add -march=x86-64, or llc fails due to non-x86 default target.

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

10 years agoUse SourceMgr::getMemoryBuffer() in a couple of places
Alp Toker [Wed, 25 Jun 2014 00:41:15 +0000 (00:41 +0000)]
Use SourceMgr::getMemoryBuffer() in a couple of places

Cleanup only.

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

10 years agoMove some trivial methods up to MCStreamer.
Rafael Espindola [Wed, 25 Jun 2014 00:27:53 +0000 (00:27 +0000)]
Move some trivial methods up to MCStreamer.

This saves some duplicated boilerplate in RecordStreamer and NullStreamer.

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

10 years ago[RuntimeDyld] Adds the necessary hooks to MCJIT to be able to debug generated
Lang Hames [Wed, 25 Jun 2014 00:20:53 +0000 (00:20 +0000)]
[RuntimeDyld] Adds the necessary hooks to MCJIT to be able to debug generated
MachO files using the GDB JIT debugging interface.

Patch by Keno Fischer. Thanks Keno!

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

10 years agoSimplify the handling of .cfi_endproc.
Rafael Espindola [Wed, 25 Jun 2014 00:13:59 +0000 (00:13 +0000)]
Simplify the handling of .cfi_endproc.

No functionality change.

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

10 years agoSimplify EmitLabel.
Rafael Espindola [Tue, 24 Jun 2014 23:54:40 +0000 (23:54 +0000)]
Simplify EmitLabel.

All the "real" streamers were already calling to MCStreamer::EmitLabel
to do part of the work.

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

10 years ago[FastISel][X86] Fold XALU condition into branch and compare.
Juergen Ributzka [Tue, 24 Jun 2014 23:51:21 +0000 (23:51 +0000)]
[FastISel][X86] Fold XALU condition into branch and compare.

Optimize the codegen of select and branch instructions to directly use the
EFLAGS from the {s|u}{add|sub|mul}.with.overflow intrinsics.

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

10 years agoR600/SI: Use a ComplexPattern for MUBUF stores
Tom Stellard [Tue, 24 Jun 2014 23:33:07 +0000 (23:33 +0000)]
R600/SI: Use a ComplexPattern for MUBUF stores

Now that non-leaf ComplexPatterns are allowed we can fold all the MUBUF
store patterns into the instruction definition.  We will also be able to
reuse this new ComplexPattern for MUBUF loads and atomic operations.

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

10 years agoR600: Promote i64 stores to v2i32
Tom Stellard [Tue, 24 Jun 2014 23:33:04 +0000 (23:33 +0000)]
R600: Promote i64 stores to v2i32

Now we need only one 64-bit pattern for stores.

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

10 years agoldr-pseudo-obj-errors.s: Fix silly copypasto.
NAKAMURA Takumi [Tue, 24 Jun 2014 23:18:07 +0000 (23:18 +0000)]
ldr-pseudo-obj-errors.s: Fix silly copypasto.

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

10 years agollvm/test/MC/AArch64/ldr-pseudo-obj-errors.s: Add -triple=aarch64-linux. AArch64...
NAKAMURA Takumi [Tue, 24 Jun 2014 23:11:42 +0000 (23:11 +0000)]
llvm/test/MC/AArch64/ldr-pseudo-obj-errors.s: Add -triple=aarch64-linux. AArch64 is unaware of PECOFF for now.

FIXME: This should pass for also targeting aarch64-darwin.

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

10 years agoPrint a=b as an assignment.
Rafael Espindola [Tue, 24 Jun 2014 22:45:16 +0000 (22:45 +0000)]
Print a=b as an assignment.

In assembly the expression a=b is parsed as an assignment, so it should be
printed as one.

This remove a truly horrible hack for producing a label with "a=.". It would
be used by codegen but would never be reached by the asm parser. Sorry I
missed this when it was first committed.

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

10 years agoR600: Fix inconsistency in rsq instructions.
Matt Arsenault [Tue, 24 Jun 2014 22:13:39 +0000 (22:13 +0000)]
R600: Fix inconsistency in rsq instructions.

R600 was using a clamped version of rsq, but SI was not. Add a
new rsq_clamped intrinsic and use them consistently.

It's unclear to me from the documentation what behavior
the R600 instructions have, so I assume they have the legacy behavior
described by the SI documents. For R600, use RECIPSQRT_IEEE
for both llvm.AMDGPU.rsq.legacy and llvm.AMDGPU.rsq. R600 also
has RECIPSQRT_FF, which I'm not sure how it fits in here.

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

10 years agofixed a few typos in comments
Sanjay Patel [Tue, 24 Jun 2014 21:11:51 +0000 (21:11 +0000)]
fixed a few typos in comments

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

10 years agoFix up scoping in a few tests (and delete one that validates unnecessary behavior).
David Blaikie [Tue, 24 Jun 2014 20:10:27 +0000 (20:10 +0000)]
Fix up scoping in a few tests (and delete one that validates unnecessary behavior).

Most of this is just tests that were silently succeeding in spite of
schema changes I made over a year ago. Cleaning them up as they lead to
failures in a change I'm working on/will come soon.

test/DebugInfo/2010-01-19-DbgScope.ll was removed as it tested miscoping
where a DebugLoc described a location not in the current function. The
test case doesn't describe why this is a valid situation and should be
supported, so I'm removing it and shortly going to commit changes that
make this firmly unsupported/assert-fail.

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

10 years ago[PPC64] Fix PR20071 (fctiduz generated for targets lacking that instruction)
Bill Schmidt [Tue, 24 Jun 2014 20:05:18 +0000 (20:05 +0000)]
[PPC64] Fix PR20071 (fctiduz generated for targets lacking that instruction)

PR20071 identifies a problem in PowerPC's fast-isel implementation for
floating-point conversion to integer.  The fctiduz instruction was added in
Power ISA 2.06 (i.e., Power7 and later).  However, this instruction is being
generated regardless of which 64-bit PowerPC target is selected.

The intent is for fast-isel to punt to DAG selection when this instruction is
not available.  This patch implements that change.  For testing purposes, the
existing fast-isel-conversion.ll test adds a RUN line for -mcpu=970 and tests
for the expected code generation.  Additionally, the existing test
fast-isel-conversion-p5.ll was found to be incorrectly expecting the
unavailable instruction to be generated.  I've removed these test variants
since we have adequate coverage in fast-isel-conversion.ll.

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

10 years agovpblend intrinsics combines as shifts intrinsics due to absence return stmt between...
Robert Khasanov [Tue, 24 Jun 2014 18:08:04 +0000 (18:08 +0000)]
vpblend intrinsics combines as shifts intrinsics due to absence return stmt between them
Fix PR20088

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

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

10 years agoR600: Remove DIV_INF
Matt Arsenault [Tue, 24 Jun 2014 17:42:16 +0000 (17:42 +0000)]
R600: Remove DIV_INF

This corresponded to an amdil instruction which there is
a 2 instruction equivalent for.

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

10 years agoR600/SI: Move pattern to instruction definition
Matt Arsenault [Tue, 24 Jun 2014 17:17:06 +0000 (17:17 +0000)]
R600/SI: Move pattern to instruction definition

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

10 years agoFix test case in r211605/r211533
Weiming Zhao [Tue, 24 Jun 2014 17:05:43 +0000 (17:05 +0000)]
Fix test case in r211605/r211533

The test case in
"Fix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64" should
only work with Linux.

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

10 years agoAdd new debug kind LocTrackingOnly.
Diego Novillo [Tue, 24 Jun 2014 17:02:03 +0000 (17:02 +0000)]
Add new debug kind LocTrackingOnly.

Summary:
This new debug emission kind supports emitting line location
information in all instructions, but stops code generation
from emitting debug info to the final output.

This mode is useful when the backend wants to track source
locations during code generation, but it does not want to
produce debug info. This is currently used by optimization
remarks (-pass-remarks, -pass-remarks-missed and
-pass-remarks-analysis).

To prevent debug info emission, DIBuilder never inserts the
annotation 'llvm.dbg.cu' when LocTrackingOnly is enabled.

Reviewers: echristo, dblaikie

Subscribers: llvm-commits

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

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

10 years agoResubmit commit r211533
Weiming Zhao [Tue, 24 Jun 2014 16:21:38 +0000 (16:21 +0000)]
Resubmit commit r211533

"Fix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64"
Missed files are added in this commit.

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

10 years agoCodeGen: Avoid multiple strlen calls
David Majnemer [Tue, 24 Jun 2014 16:01:53 +0000 (16:01 +0000)]
CodeGen: Avoid multiple strlen calls

Use a StringRef to hold our section prefix.  This avoids multiple calls
to strlen.

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

10 years agoARM: Fix TPsoft for Thumb mode
Christian Pirker [Tue, 24 Jun 2014 15:45:59 +0000 (15:45 +0000)]
ARM: Fix TPsoft for Thumb mode

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

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

10 years agoRemove an empty directory left after r211508.
Alexander Kornienko [Tue, 24 Jun 2014 15:38:38 +0000 (15:38 +0000)]
Remove an empty directory left after r211508.

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

10 years agoReplace two release calls with std::move. I missed this on the previous commit.
Rafael Espindola [Tue, 24 Jun 2014 14:25:17 +0000 (14:25 +0000)]
Replace two release calls with std::move. I missed this on the previous commit.

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

10 years agoPass a unique_ptr<MemoryBuffer> to the constructors in the Binary hierarchy.
Rafael Espindola [Tue, 24 Jun 2014 13:56:32 +0000 (13:56 +0000)]
Pass a unique_ptr<MemoryBuffer> to the constructors in the  Binary hierarchy.

Once the objects are constructed, they own the buffer. Passing a unique_ptr
makes that clear.

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

10 years agoRevert: r211588 - [mips] Use __clear_cache builtin instead of cacheflush() in Unix...
Daniel Sanders [Tue, 24 Jun 2014 13:53:56 +0000 (13:53 +0000)]
Revert: r211588 - [mips] Use __clear_cache builtin instead of cacheflush() in Unix Memory::InvalidateInstructionCache()

Buildbot reports a test failure on the llvm-mips-linux builder and blames r211588.
Although it doesn't appear in the blamelist, it seems it could also be r211587
(because it's committed to compiler-rt?) since they were tested together.

Reverting the most likely suspect (r211588) to confirm one way or the other.

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

10 years agoRevert r211287, "Remove support for LLVM runtime multi-threading."
NAKAMURA Takumi [Tue, 24 Jun 2014 13:36:31 +0000 (13:36 +0000)]
Revert r211287, "Remove support for LLVM runtime multi-threading."

libclang still requires it on cygming, lack of incomplete <mutex>.

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

10 years ago[mips] Added support for assembling sdbbp.
Daniel Sanders [Tue, 24 Jun 2014 13:00:32 +0000 (13:00 +0000)]
[mips] Added support for assembling sdbbp.

Summary:
This instruction is re-encoded in MIPS32r6/MIPS64r6 without changing the
restrictions. We hadn't implemented it for earlier ISA's so it has been added to those too.

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

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

10 years ago[mips] Use __clear_cache builtin instead of cacheflush() in Unix Memory::InvalidateIn...
Daniel Sanders [Tue, 24 Jun 2014 12:26:49 +0000 (12:26 +0000)]
[mips] Use __clear_cache builtin instead of cacheflush() in Unix Memory::InvalidateInstructionCache()

MIPS64 Android bionic has removed cacheflush(). Use __clear_cache() instead for 32-bit and 64-bit MIPS

Patch by Duane Sand <Duane.Sand@imgtec.com>

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

10 years agoInstCombine: Disable umul.with.overflow recognition for vectors.
Benjamin Kramer [Tue, 24 Jun 2014 10:47:52 +0000 (10:47 +0000)]
InstCombine: Disable umul.with.overflow recognition for vectors.

It doesn't make a lot on most targets and the code isn't ready for it. PR20113.

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

10 years agoInstCombine: Don't try to reorder shuffles where the mask is a ConstantExpr.
Benjamin Kramer [Tue, 24 Jun 2014 10:38:10 +0000 (10:38 +0000)]
InstCombine: Don't try to reorder shuffles where the mask is a ConstantExpr.

We can't analyze the individual values of a vector expression. PR20114.

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

10 years agoGlobalOpt: Don't optimize dllimport for initializers
David Majnemer [Tue, 24 Jun 2014 06:53:45 +0000 (06:53 +0000)]
GlobalOpt: Don't optimize dllimport for initializers

Referencing a dllimport variable requires actually instructions, not
just a relocation.  This fixes PR19955.

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

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

10 years agoInclude <tuple> for std::tie
Alexey Samsonov [Tue, 24 Jun 2014 05:59:52 +0000 (05:59 +0000)]
Include <tuple> for std::tie

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

10 years ago[AArch64] Fix a build_vector pattern match fail
Kevin Qin [Tue, 24 Jun 2014 05:37:27 +0000 (05:37 +0000)]
[AArch64] Fix a build_vector pattern match fail
caused by defect in isBuildVectorAllZeros().

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

10 years ago[Disasm][AVX512] Implement decoding of top bit for non-destructive reg fields
Adam Nemet [Tue, 24 Jun 2014 01:42:32 +0000 (01:42 +0000)]
[Disasm][AVX512] Implement decoding of top bit for non-destructive reg fields

V' bit in the P2 byte of the EVEX prefix provides the top bit of the NDD and
NDS register fields.  This was simply not used in the decoder until now.

Fixes <rdar://problem/17402661>

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

10 years ago[Emacs] Use spaces rather than tabs for indentation in tablegen-mode
Adam Nemet [Tue, 24 Jun 2014 01:42:29 +0000 (01:42 +0000)]
[Emacs] Use spaces rather than tabs for indentation in tablegen-mode

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

10 years agoSupport: Move class ScaledNumber
Duncan P. N. Exon Smith [Tue, 24 Jun 2014 00:38:09 +0000 (00:38 +0000)]
Support: Move class ScaledNumber

ScaledNumber has been cleaned up enough to pull out of BFI now.  Still
work to do there (tests for shifting, bloated printing code, etc.), but
it seems clean enough for its new home.

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

10 years agoBFI: Un-floatify more language
Duncan P. N. Exon Smith [Tue, 24 Jun 2014 00:26:13 +0000 (00:26 +0000)]
BFI: Un-floatify more language

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

10 years agoBFI: Remove more float-like language from ScaledNumber
Duncan P. N. Exon Smith [Tue, 24 Jun 2014 00:26:10 +0000 (00:26 +0000)]
BFI: Remove more float-like language from ScaledNumber

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

10 years agoSupport: Return ScaledNumbers::MaxScale from getQuotient()
Duncan P. N. Exon Smith [Tue, 24 Jun 2014 00:26:08 +0000 (00:26 +0000)]
Support: Return ScaledNumbers::MaxScale from getQuotient()

Return MaxScale now that it's available.

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

10 years agoSupport: Extract ScaledNumbers::MinScale and MaxScale
Duncan P. N. Exon Smith [Tue, 24 Jun 2014 00:15:19 +0000 (00:15 +0000)]
Support: Extract ScaledNumbers::MinScale and MaxScale

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