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.
llvm-svn: 211646
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.
llvm-svn: 211645
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.
llvm-svn: 211644
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.
llvm-svn: 211643
NAKAMURA Takumi [Tue, 24 Jun 2014 23:18:07 +0000 (23:18 +0000)]
ldr-pseudo-obj-errors.s: Fix silly copypasto.
llvm-svn: 211642
Richard Trieu [Tue, 24 Jun 2014 23:14:24 +0000 (23:14 +0000)]
Provide a better diagnostic when braces are put before the identifier.
When a user types:
int [4] foo;
assume that the user means:
int foo[4];
Update the information for 'foo' to prevent additional errors, and provide
a fix-it hint to move the brackets to the correct location.
Additionally, suggest parens for types that require it, such as:
int [4] *foo;
to:
int (*foo)[4];
llvm-svn: 211641
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.
llvm-svn: 211640
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.
llvm-svn: 211639
Greg Clayton [Tue, 24 Jun 2014 22:22:43 +0000 (22:22 +0000)]
Patch from Keno Fischer to enable JITLoaderGDB with mach-o file support.
The patch is as is with the functionality left disabled for apple vendors because of performance regressions. If this is enabled it ends up searching for symbols in all shared libraries that are loadeded.
llvm-svn: 211638
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.
llvm-svn: 211637
Jim Ingham [Tue, 24 Jun 2014 21:51:42 +0000 (21:51 +0000)]
Rework fix in r201744. You really DO need to waitpid twice to get the
process fully reaped. The race & bad behavior was because we were letting
the reaping thread in LLDB to also set the Process exit status, so debugserver
would sometimes be shut down before it got a chance to report the exit status,
and then we got confused.
<rdar://problem/
16555850>
llvm-svn: 211636
Todd Fiala [Tue, 24 Jun 2014 21:38:31 +0000 (21:38 +0000)]
Fix up Windows build for the SBUnixSignals addition.
Change by Zachary Turner.
llvm-svn: 211635
Sanjay Patel [Tue, 24 Jun 2014 21:11:51 +0000 (21:11 +0000)]
fixed a few typos in comments
llvm-svn: 211634
Ben Langmuir [Tue, 24 Jun 2014 21:08:13 +0000 (21:08 +0000)]
Fix test issues from r211623 and remove test-only API
1) missing iterator bits needed by libstdc++4.7
Using find_if was convenient, but since operator++ wasn't a good
interface anyway, I just replaced with a range-based for loop and
removed operator++ from the directory_iterator class.
2) stop relying on order of iterating real files
llvm-svn: 211633
Matt Arsenault [Tue, 24 Jun 2014 20:58:46 +0000 (20:58 +0000)]
Forgot to add file in r211631
llvm-svn: 211632
Matt Arsenault [Tue, 24 Jun 2014 20:45:01 +0000 (20:45 +0000)]
Add R600 builtin codegen.
llvm-svn: 211631
Matt Arsenault [Tue, 24 Jun 2014 20:32:13 +0000 (20:32 +0000)]
Fix missing C++ mode comment
llvm-svn: 211630
David Fang [Tue, 24 Jun 2014 20:32:11 +0000 (20:32 +0000)]
eliminate install of duplicate headers (take 2)
Patch by Ryuta Suzuki
llvm-svn: 211629
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.
llvm-svn: 211628
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.
llvm-svn: 211627
Rafael Espindola [Tue, 24 Jun 2014 20:01:50 +0000 (20:01 +0000)]
Correctly Load Mixed FP-GP Variadic Arguments for x86-64.
According to the x86-64 ABI, structures with both floating point and
integer members are split between floating-point and general purpose
registers, and consecutive 32-bit floats can be packed into a single
floating point register.
In the case of variadic functions these are stored to memory and the position
recorded in the va_list. This was already correctly implemented in
llvm.va_start.
The problem is that the code in clang for implementing va_arg was reading
floating point registers from the wrong location.
Patch by Thomas Jablin.
Fixes PR20018.
llvm-svn: 211626
Ben Langmuir [Tue, 24 Jun 2014 20:00:30 +0000 (20:00 +0000)]
Disable the bits of r211623 that broke the bots
Part of my test seems to rely on iterator bits that I didn't implement,
at least in the gcc bots. Disabling while I investigate.
llvm-svn: 211625
Brad Smith [Tue, 24 Jun 2014 19:51:29 +0000 (19:51 +0000)]
Use appropriate default PIE settings for OpenBSD.
llvm-svn: 211624
Ben Langmuir [Tue, 24 Jun 2014 19:37:16 +0000 (19:37 +0000)]
Add directory_iterator for (non-recursive) iteration of VFS directories
The API is based on sys::fs::directory_iterator, but it allows iterating
over overlays and the yaml-based VFS. For now, it isn't used by
anything (except its tests).
llvm-svn: 211623
Alp Toker [Tue, 24 Jun 2014 19:23:10 +0000 (19:23 +0000)]
Simplify optimization-remark.c test following r211610
With LocTrackingOnly there's no longer a user-facing distinction so the NDEBUG
checks can go away. (Except maybe column info, but -verify only checks line
numbers anyway.)
Also add a RUN line to validate the traditional !LocTrackingOnly case.
llvm-svn: 211622
Ed Maste [Tue, 24 Jun 2014 19:18:28 +0000 (19:18 +0000)]
Restore r211547: Add newline on last line of a few files.
llvm-svn: 211621
Ed Maste [Tue, 24 Jun 2014 19:16:18 +0000 (19:16 +0000)]
Restore fixes reverted by r211607:
r209631: Use MIUtilSystemLinux on FreeBSD as well
We should later rename this file (probably MIUtilSystemPOSIX), but
more clean-up is still needed here, and we can wait until we better
understand how this code may be shared between FreeBSD, Linux, and OS X.
r209632: Add stdlib.h for malloc and friends
r209633: Remove include of obsolete stropts.h header
The header is for POSIX streams functionality, and does not exist on
FreeBSD, OS X, or contemporary Linux distributions.
Issue reported by John Wolfe.
llvm-svn: 211620
Simon Atanasyan [Tue, 24 Jun 2014 19:00:12 +0000 (19:00 +0000)]
[Driver][Mips] Support mips64-linux-gnuabi64 / mips64el-linux-gnuabi64 target triples.
The patch fixes the bug #19869.
http://llvm.org/bugs/show_bug.cgi?id=19869
llvm-svn: 211619
Deepak Panickal [Tue, 24 Jun 2014 18:20:51 +0000 (18:20 +0000)]
Remove unused files, causing CMake build error.
llvm-svn: 211618
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
llvm-svn: 211617
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.
llvm-svn: 211616
David Blaikie [Tue, 24 Jun 2014 17:31:05 +0000 (17:31 +0000)]
Fix test added in r211610 so it doesn't race on output file creation.
llvm-svn: 211615
Matt Arsenault [Tue, 24 Jun 2014 17:17:06 +0000 (17:17 +0000)]
R600/SI: Move pattern to instruction definition
llvm-svn: 211614
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.
llvm-svn: 211613
Johannes Doerfert [Tue, 24 Jun 2014 17:02:53 +0000 (17:02 +0000)]
[Refactor] Create nicer test cases from C/C++
Insert a header into the new testcase containing a sample RUN line a FIXME and
an XFAIL. Then insert the formated C code and finally the LLVM-IR without
attributes, the module ID or the target triple.
llvm-svn: 211612
Fariborz Jahanian [Tue, 24 Jun 2014 17:02:19 +0000 (17:02 +0000)]
Objective-C. When we use @selector(save:), etc. there may be more
than one method with mismatched type of same selector name.
clang issues a warning to point this out since it may cause
undefined behavior. There are cases though that some APIs
don't care about user methods and such warnings are perceived as
noise. This patch allows users to add paren delimiters around
selector name to turn off such warnings. So, @selector((save:)) will
turn off the warning. It also provides 'fixit' so user knows
what to do. // rdar://
16458579
llvm-svn: 211611
Diego Novillo [Tue, 24 Jun 2014 17:02:17 +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 (-Rpass, -Rpass-missed and -Rpass-analysis).
When one of the -Rpass flags is used, the front end will enable
location tracking, only if no other debug option is enabled.
To prevent debug information from being generated, a new debug
info kind LocTrackingOnly causes DIBuilder::createCompileUnit() to
not emit the llvm.dbg.cu annotation. This blocks final code generation
from generating debug info in the back end.
Depends on D4234.
Reviewers: echristo, dblaikie
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4235
llvm-svn: 211610
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
llvm-svn: 211609
Greg Fitzgerald [Tue, 24 Jun 2014 16:58:59 +0000 (16:58 +0000)]
Remove ARM XFAIL from passing test
llvm-svn: 211608
Deepak Panickal [Tue, 24 Jun 2014 16:35:50 +0000 (16:35 +0000)]
Added support for new MI commands and bug fixes. More details in MIReadme.txt.
llvm-svn: 211607
Aaron Ballman [Tue, 24 Jun 2014 16:22:41 +0000 (16:22 +0000)]
Allow static_assert inside an anonymous union; fixes PR20021 as well as implements C++ Issue 1940.
llvm-svn: 211606
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.
llvm-svn: 211605
Logan Chien [Tue, 24 Jun 2014 16:18:10 +0000 (16:18 +0000)]
Use lowercase windows.h for mingw cross compilation.
llvm-svn: 211604
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.
llvm-svn: 211602
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
llvm-svn: 211601
Alexander Kornienko [Tue, 24 Jun 2014 15:38:38 +0000 (15:38 +0000)]
Remove an empty directory left after r211508.
llvm-svn: 211600
Alexander Kornienko [Tue, 24 Jun 2014 15:28:21 +0000 (15:28 +0000)]
Fix "warning: fallthrough annotation does not directly precede switch label" in lambdas.
Summary: This patch fixes http://llvm.org/PR17864 - "warning: fallthrough annotation does not directly precede switch label" in lambdas.
Reviewers: rsmith
Reviewed By: rsmith
Subscribers: rnk, cfe-commits
Differential Revision: http://reviews.llvm.org/D4258
llvm-svn: 211599
Daniel Sanders [Tue, 24 Jun 2014 15:04:16 +0000 (15:04 +0000)]
[mips] Correct linux dynamic linker for -mnan=2008
Summary:
The dynamic linker is named ld-linux-mipsn8.so.1 when -mnan=2008 is given (or
is the default). It remains ld.so.1 for other cases.
This is necessary for MIPS32r6/MIPS64r6 since these ISA's default to -mnan=2008.
Differential Revision: http://reviews.llvm.org/D4273
llvm-svn: 211598
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.
llvm-svn: 211597
Rafael Espindola [Tue, 24 Jun 2014 13:57:13 +0000 (13:57 +0000)]
Update for llvm api change.
llvm-svn: 211596
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.
llvm-svn: 211595
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.
llvm-svn: 211594
NAKAMURA Takumi [Tue, 24 Jun 2014 13:50:01 +0000 (13:50 +0000)]
Revert r211121 (and r211285), "Change libclang initialization to use std::call_once instead of"
It broke mingw builder and cygwin-clang stage2, possibly lack of tls in <mutex>.
llvm-svn: 211593
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>.
llvm-svn: 211592
Tobias Grosser [Tue, 24 Jun 2014 13:31:42 +0000 (13:31 +0000)]
cmake: Fix reference to Pluto file
llvm-svn: 211591
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
llvm-svn: 211590
Alexey Bataev [Tue, 24 Jun 2014 12:55:56 +0000 (12:55 +0000)]
[OPENMP] Additional checking for 'collapse' clause.
llvm-svn: 211589
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>
llvm-svn: 211588
Daniel Sanders [Tue, 24 Jun 2014 12:08:18 +0000 (12:08 +0000)]
[asan] adding support of 32-bit address sanitizer for MIPS
Summary: The patch supports both the clang cross-compiler and native compiler
Patch by Kumar Sukhani <Kumar.Sukhani@imgtec.com>
Test Plan:
Kumar had the following asan test results when compiled on a MIPS board:
Expected Passes : 96
Expected Failures : 2
Unsupported Tests : 84
Unexpected Passes : 4
Unexpected Failures: 19
The list of unexpected failures can be found in the review.
Reviewers: kcc, petarj, dsanders
Reviewed By: kcc
Subscribers: farazs, kcc, llvm-commits
Differential Revision: http://reviews.llvm.org/D4208
llvm-svn: 211587
Tim Northover [Tue, 24 Jun 2014 12:07:44 +0000 (12:07 +0000)]
ARM: remove dead CodeGen functions.
These two are no longer being used by NEON codegen.
llvm-svn: 211586
Evgeniy Stepanov [Tue, 24 Jun 2014 11:50:26 +0000 (11:50 +0000)]
[msan] Fix origin copying.
Conditions for the first and the last origin value in range were wrong.
llvm-svn: 211585
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.
llvm-svn: 211583
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.
llvm-svn: 211581
Jeroen Ketema [Tue, 24 Jun 2014 09:51:01 +0000 (09:51 +0000)]
Add half limits
These are apparently only defined in OpenCL 1.2.
HALF_MAX, HALF_MIN and HALF_EPSILON are currently omitted. Clang does
not seem to support the ‘h’ suffix for half float constants even with
the cl_khr_fp16 extension enabled.
Reviewed-by: Tom Sellard <tom@stellard.net>
llvm-svn: 211579
Jeroen Ketema [Tue, 24 Jun 2014 09:46:52 +0000 (09:46 +0000)]
Introduce CLC_VERSION macros v2
Add these out-of-order in clc.h so we can use these in other headers.
v2: Take into account the lack of a definition in OpenCL 1.0
Reviewed-by: Tom Stellard <tom@stellard.net>
llvm-svn: 211578
Jeroen Ketema [Tue, 24 Jun 2014 09:41:28 +0000 (09:41 +0000)]
Add MAXFLOAT
Align definitions while we are here.
Reviewed-by: Tom Stellard <tom@stellard.net>
llvm-svn: 211577
Jeroen Ketema [Tue, 24 Jun 2014 09:36:32 +0000 (09:36 +0000)]
Move clcmacro.h to avoid cluttering user namespace v2
v2: - use quotes instead of <>
- add include to r600/lib/math/nextafter.c changed
Reviewed-by: Tom Stellard <tom@stellard.net>
Reviewed-by: Aaron Watry <awatry@gmail.com>
llvm-svn: 211576
Daniel Jasper [Tue, 24 Jun 2014 09:15:49 +0000 (09:15 +0000)]
clang-format: Understand that breaking before lambdas is fine.
Before:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa([](
const
aaaaaaaaaa &a) { return a; });
After:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
[](const
aaaaaaaaaa &a) { return a; });
llvm-svn: 211575
Evgeniy Stepanov [Tue, 24 Jun 2014 09:04:06 +0000 (09:04 +0000)]
[msan] Print stats even on successful run with atexit=1.
llvm-svn: 211574
Yabin Hu [Tue, 24 Jun 2014 08:11:36 +0000 (08:11 +0000)]
Remove use of llvm.codegen intrinsic for GPGPU codegen
We use llvm.codegen intrinsic to generate code for embedded LLVM-IR
strings. The reason we introduce such a intrinsic is that previous
clang/opt tools was NOT linked with various LLVM targets and their
AsmParsers and AsmPrinters. Since clang/opt been linked with all the
needed libraries, we no longer need the llvm.codegen intrinsic.
llvm-svn: 211573
Justin Bogner [Tue, 24 Jun 2014 08:01:01 +0000 (08:01 +0000)]
Driver: Restore proper naming of crashdump files
Based on a review of r211411 by Jordan Rose.
llvm-svn: 211572
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
llvm-svn: 211571
David Majnemer [Tue, 24 Jun 2014 06:40:51 +0000 (06:40 +0000)]
AST: Address of dllimport functions isn't constant
The address of dllimport functions can be accessed one of two ways:
- Through the IAT which is symbolically referred to with a symbol
starting with __imp_.
- Via the wrapper-function which ends up calling through the __imp_
symbol.
The problem with using the wrapper-function is that it's address will
not compare as equal in all translation units. Specifically, it will
compare unequally with the translation unit which defines the function.
This fixes PR19955.
llvm-svn: 211570
Alexey Samsonov [Tue, 24 Jun 2014 05:59:52 +0000 (05:59 +0000)]
Include <tuple> for std::tie
llvm-svn: 211569
David Majnemer [Tue, 24 Jun 2014 05:59:13 +0000 (05:59 +0000)]
AST: Address of dllimport variables isn't constant
The address of dllimport variables isn't something that can be
meaningfully used in a constexpr context and isn't suitable for
evaluation at load-time. They require loads from memory to properly
evaluate.
This fixes PR19955.
Differential Revision: http://reviews.llvm.org/D4250
llvm-svn: 211568
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().
llvm-svn: 211567
Alexey Bataev [Tue, 24 Jun 2014 04:39:47 +0000 (04:39 +0000)]
[OPENMP] Added initial checking of nesting of OpenMP regions.
llvm-svn: 211566
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>
llvm-svn: 211565
Adam Nemet [Tue, 24 Jun 2014 01:42:29 +0000 (01:42 +0000)]
[Emacs] Use spaces rather than tabs for indentation in tablegen-mode
llvm-svn: 211564
Marshall Clow [Tue, 24 Jun 2014 00:46:19 +0000 (00:46 +0000)]
Some calls to get<>() were qualified. Some were not. Qualify them all. Fixes bug #20092. Thanks to Agustín Bergé for the bug report and the fix.
llvm-svn: 211563
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.
llvm-svn: 211562
Duncan P. N. Exon Smith [Tue, 24 Jun 2014 00:26:13 +0000 (00:26 +0000)]
BFI: Un-floatify more language
llvm-svn: 211561
Duncan P. N. Exon Smith [Tue, 24 Jun 2014 00:26:10 +0000 (00:26 +0000)]
BFI: Remove more float-like language from ScaledNumber
llvm-svn: 211560
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.
llvm-svn: 211559
Duncan P. N. Exon Smith [Tue, 24 Jun 2014 00:15:19 +0000 (00:15 +0000)]
Support: Extract ScaledNumbers::MinScale and MaxScale
llvm-svn: 211558
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 23:57:12 +0000 (23:57 +0000)]
BFI: Change language from "exponent" to "scale"
llvm-svn: 211557
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 23:49:31 +0000 (23:49 +0000)]
BFI: Update ScaledNumber header docs
llvm-svn: 211556
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 23:36:17 +0000 (23:36 +0000)]
BFI: Rename UnsignedFloat => ScaledNumber
A lot of the docs and API are out of date, but I'll leave that for a
separate commit.
llvm-svn: 211555
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 23:17:36 +0000 (23:17 +0000)]
Fix comments from r211553
llvm-svn: 211554
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 23:15:25 +0000 (23:15 +0000)]
Support: Extract ScaledNumbers::getSum() and getDifference()
llvm-svn: 211553
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 23:14:51 +0000 (23:14 +0000)]
Support: Return scale from ScaledNumbers::matchScales()
This will be convenient when extracting `ScaledNumbers::getSum()`.
llvm-svn: 211552
Nick Lewycky [Mon, 23 Jun 2014 22:57:51 +0000 (22:57 +0000)]
Propagate isAddressOfMember into typo correction so that we don't correct &qualified-id into &unqualified-id. Also make sure to set the naming class when we find the qualified-id in a different class than the nested name specifier specified so far. Fixes PR19681!
llvm-svn: 211551
Reid Kleckner [Mon, 23 Jun 2014 22:54:33 +0000 (22:54 +0000)]
not: Only consider exit code 3 to be a crash with --crash
This fixes Clang's test/Index/comment-xml-schema.c with Cygwin's
xmllint.exe, which uses exit(3) for XML validation failure.
llvm-svn: 211550
Jason Molenda [Mon, 23 Jun 2014 22:45:54 +0000 (22:45 +0000)]
Fix error handling for the AppleGetQueues and AppleGetPendingItems
ClangFunctions if the clang function compilation fails for any reason.
<rdar://problem/
16793965>
llvm-svn: 211549
Rafael Espindola [Mon, 23 Jun 2014 22:29:12 +0000 (22:29 +0000)]
Update for llvm api change.
llvm-svn: 211548
Jason Molenda [Mon, 23 Jun 2014 22:26:01 +0000 (22:26 +0000)]
Add newline on last line of a few files.
llvm-svn: 211547
Rafael Espindola [Mon, 23 Jun 2014 22:00:37 +0000 (22:00 +0000)]
Pass a std::unique_ptr& to the create??? methods is lib/Object.
This makes the buffer ownership on error conditions very natural. The buffer
is only moved out of the argument if an object is constructed that now
owns the buffer.
llvm-svn: 211546
Juergen Ributzka [Mon, 23 Jun 2014 21:55:44 +0000 (21:55 +0000)]
[FastISel][X86] Lower unsupported selects to control-flow.
The extends the select lowering coverage by emiting pseudo cmov
instructions. These insturction will be later on lowered to control-flow to
simulate the select.
llvm-svn: 211545
Juergen Ributzka [Mon, 23 Jun 2014 21:55:40 +0000 (21:55 +0000)]
[FastISel][X86] Add support for floating-point select.
This extends the select lowering to support floating-point selects. The
lowering depends on SSE instructions and that the conditon comes from a
floating-point compare. Under this conditions it is possible to emit an
optimized instruction sequence that doesn't require any branches to
simulate the select.
llvm-svn: 211544
Juergen Ributzka [Mon, 23 Jun 2014 21:55:36 +0000 (21:55 +0000)]
[FastISel][X86] Optimize selects when the condition comes from a compare.
Optimize the select instructions sequence to use the EFLAGS directly from a
compare when possible.
llvm-svn: 211543