Daniel Sanders [Tue, 16 Dec 2014 11:21:58 +0000 (11:21 +0000)]
[mips] Fix arguments-struct.ll for Windows and OSX hosts.
llvm-svn: 224333
Bradley Smith [Tue, 16 Dec 2014 10:59:27 +0000 (10:59 +0000)]
[ARM] Prevent PerformVCVTCombine from combining a vmul/vcvt with 8 lanes
This would result in a crash since the vcvt used does not support v8i32 types.
llvm-svn: 224332
Hafiz Abid Qadeer [Tue, 16 Dec 2014 10:20:35 +0000 (10:20 +0000)]
Fixed 2 typos in help.
llvm-svn: 224331
Elena Demikhovsky [Tue, 16 Dec 2014 09:10:08 +0000 (09:10 +0000)]
X86: Added FeatureVectorUAMem for all AVX architectures.
According to AVX specification:
"Most arithmetic and data processing instructions encoded using the VEX prefix and
performing memory accesses have more flexible memory alignment requirements
than instructions that are encoded without the VEX prefix. Specifically,
With the exception of explicitly aligned 16 or 32 byte SIMD load/store instructions,
most VEX-encoded, arithmetic and data processing instructions operate in
a flexible environment regarding memory address alignment, i.e. VEX-encoded
instruction with 32-byte or 16-byte load semantics will support unaligned load
operation by default. Memory arguments for most instructions with VEX prefix
operate normally without causing #GP(0) on any byte-granularity alignment
(unlike Legacy SSE instructions)."
The same for AVX-512.
This change does not affect anything right now, because only the "memop pattern fragment"
depends on FeatureVectorUAMem and it is not used in AVX patterns.
All AVX patterns are based on the "unaligned load" anyway.
llvm-svn: 224330
Alexey Bataev [Tue, 16 Dec 2014 08:01:48 +0000 (08:01 +0000)]
Renamed RefersToEnclosingLocal bitfield to RefersToCapturedVariable.
Bitfield RefersToEnclosingLocal of Stmt::DeclRefExprBitfields renamed to RefersToCapturedVariable to reflect latest changes introduced in commit 224323. Also renamed method Expr::refersToEnclosingLocal() to Expr::refersToCapturedVariable() and comments for constant arguments.
No functional changes.
llvm-svn: 224329
Duncan P. N. Exon Smith [Tue, 16 Dec 2014 07:45:05 +0000 (07:45 +0000)]
Remove 'metadata' from comments
llvm-svn: 224328
Duncan P. N. Exon Smith [Tue, 16 Dec 2014 07:40:31 +0000 (07:40 +0000)]
IR: Stop printing 'metadata' in Metadata::print()
Stop printing `metadata` in `Metadata::print()` and
`Metadata::printAsOperand()`.
llvm-svn: 224327
Mohit K. Bhakkad [Tue, 16 Dec 2014 07:11:08 +0000 (07:11 +0000)]
internal_stat for mips64
llvm-svn: 224326
Duncan P. N. Exon Smith [Tue, 16 Dec 2014 07:09:37 +0000 (07:09 +0000)]
IR: Make MDNode::dump() useful by adding addresses
It's horrible to inspect `MDNode`s in a debugger. All of their operands
that are `MDNode`s get dumped as `<badref>`, since we can't assign
metadata slots in the context of a `Metadata::dump()`. (Why not? Why
not assign numbers lazily? Because then each time you called `dump()`,
a given `MDNode` could have a different lazily assigned number.)
Fortunately, the C memory model gives us perfectly good identifiers for
`MDNode`. Add pointer addresses to the dumps, transforming this:
(lldb) e N->dump()
!{i32 662302, i32 26, <badref>, null}
(lldb) e ((MDNode*)N->getOperand(2))->dump()
!{i32 4, !"foo"}
into:
(lldb) e N->dump()
!{i32 662302, i32 26, <0x100706ee0>, null}
(lldb) e ((MDNode*)0x100706ee0)->dump()
!{i32 4, !"foo"}
and this:
(lldb) e N->dump()
0x101200248 = !{<badref>, <badref>, <badref>, <badref>, <badref>}
(lldb) e N->getOperand(0)
(const llvm::MDOperand) $0 = {
MD = 0x00000001012004e0
}
(lldb) e N->getOperand(1)
(const llvm::MDOperand) $1 = {
MD = 0x00000001012004e0
}
(lldb) e N->getOperand(2)
(const llvm::MDOperand) $2 = {
MD = 0x0000000101200058
}
(lldb) e N->getOperand(3)
(const llvm::MDOperand) $3 = {
MD = 0x00000001012004e0
}
(lldb) e N->getOperand(4)
(const llvm::MDOperand) $4 = {
MD = 0x0000000101200058
}
(lldb) e ((MDNode*)0x00000001012004e0)->dump()
!{}
(lldb) e ((MDNode*)0x0000000101200058)->dump()
!{null}
into:
(lldb) e N->dump()
!{<0x1012004e0>, <0x1012004e0>, <0x101200058>, <0x1012004e0>, <0x101200058>}
(lldb) e ((MDNode*)0x1012004e0)->dump()
!{}
(lldb) e ((MDNode*)0x101200058)->dump()
!{null}
llvm-svn: 224325
Duncan P. N. Exon Smith [Tue, 16 Dec 2014 07:08:19 +0000 (07:08 +0000)]
DebugInfo: Update testcase to actually check something
This test was missing a `Debug Info Version` so it's `not grep` was
passing vacuously. Update it to CHECK for something useful at the same
time so it doesn't bitrot quite so easily in the future.
llvm-svn: 224324
Alexey Bataev [Tue, 16 Dec 2014 07:00:22 +0000 (07:00 +0000)]
[OPENMP] Bugfix for processing of global variables in OpenMP regions.
Currently, if global variable is marked as a private OpenMP variable, the compiler crashes in debug version or generates incorrect code in release version. It happens because in the OpenMP region the original global variable is used instead of the generated private copy. It happens because currently globals variables are not captured in the OpenMP region.
This patch adds capturing of global variables iff private copy of the global variable must be used in the OpenMP region.
Differential Revision: http://reviews.llvm.org/D6259
llvm-svn: 224323
David Majnemer [Tue, 16 Dec 2014 06:31:17 +0000 (06:31 +0000)]
Sema: Don't crash converting to bool from _Atomic
Turning our _Atomic L-value into an R-value removes its _Atomic-ness.
However, we didn't update our 'FromType' which made
ScalarTypeToBooleanCastKind think we were trying to pass it a
non-scalar.
This fixes PR21836.
llvm-svn: 224322
Jason Molenda [Tue, 16 Dec 2014 06:20:30 +0000 (06:20 +0000)]
Temporarily disable CompactUnwindInfo::GetCompactUnwindInfoForFunction.
The compact unwind importer is getting the wrong unwind info for one
case that I found. I haven't been able to fix the problem tonight
and I don't want to leave TOT behaving incorrectly, so just ignore
compact unwind until I can get to the bottom of this.
llvm-svn: 224321
Nick Lewycky [Tue, 16 Dec 2014 06:12:01 +0000 (06:12 +0000)]
Improve handling of value dependent expressions in __attribute__((enable_if)), both in the condition expression and at the call site. Fixes PR20988!
llvm-svn: 224320
Saleem Abdulrasool [Tue, 16 Dec 2014 05:53:25 +0000 (05:53 +0000)]
ARM: diagnose deprecated syntax
The use of SP and PC in the register list for stores is deprecated on ARM
(ARM ARM A.8.8.199):
ARM deprecates the use of ARM instructions that include the SP or the PC in
the list.
Provide a deprecation warning from the assembler in the case that the syntax is
ever seen.
llvm-svn: 224319
Hal Finkel [Tue, 16 Dec 2014 05:51:41 +0000 (05:51 +0000)]
[PowerPC] Improve instruction selection bit-permuting operations (32-bit)
The PowerPC backend, somewhat embarrassingly, did not generate an
optimal-length sequence of instructions for a 32-bit bswap. While adding a
pattern for the bswap intrinsic to fix this would not have been terribly
difficult, doing so would not have addressed the real problem: we had been
generating poor code for many bit-permuting operations (by which I mean things
like byte-swap that permute the bits of one or more inputs around in various
ways). Here are some initial steps toward solving this deficiency.
Bit-permuting operations are represented, at the SDAG level, using ISD::ROTL,
SHL, SRL, AND and OR (mostly with constant second operands). Looking back
through these operations, we can build up a description of the bits in the
resulting value in terms of bits of one or more input values (and constant
zeros). For each bit, we compute the rotation amount from the original value,
and then group consecutive (value, rotation factor) bits into groups. Groups
sharing these attributes are then collected and sorted, and we can then
instruction select the entire permutation using a combination of masked
rotations (rlwinm), imm ands (andi/andis), and masked rotation inserts
(rlwimi).
The result is that instead of lowering an i32 bswap as:
rlwinm 5, 3, 24, 16, 23
rlwinm 4, 3, 24, 0, 7
rlwimi 4, 3, 8, 8, 15
rlwimi 5, 3, 8, 24, 31
rlwimi 4, 5, 0, 16, 31
we now produce:
rlwinm 4, 3, 8, 0, 31
rlwimi 4, 3, 24, 16, 23
rlwimi 4, 3, 24, 0, 7
and for the 'test6' example in the PowerPC/README.txt file:
unsigned test6(unsigned x) {
return ((x & 0x00FF0000) >> 16) | ((x & 0x000000FF) << 16);
}
we used to produce:
lis 4, 255
rlwinm 3, 3, 16, 0, 31
ori 4, 4, 255
and 3, 3, 4
and now we produce:
rlwinm 4, 3, 16, 24, 31
rlwimi 4, 3, 16, 8, 15
and, as a nice bonus, this fixes the FIXME in
test/CodeGen/PowerPC/rlwimi-and.ll.
This commit does not include instruction-selection for i64 operations, those
will come later.
llvm-svn: 224318
Justin Bogner [Tue, 16 Dec 2014 05:28:07 +0000 (05:28 +0000)]
Revert "Fix installheaders target's permissions"
The install of headers excludes the support directory, so these chmod
calls fail on non-existent directories, as seen on this bot:
http://lab.llvm.org:8080/green/job/clang-stage1-configure-RA_build/2801/console
This reverts commit r224300.
llvm-svn: 224317
David Majnemer [Tue, 16 Dec 2014 04:52:14 +0000 (04:52 +0000)]
AST: Fix the linkage of static vars in fn template specializations
We that static variables in function template specializations were
externally visible. The manglers assumed that externally visible static
variables were numbered in Sema. We would end up mangling static
variables in the same specialization with the same mangling number which
would give all of them the same name.
This fixes PR21904.
llvm-svn: 224316
Kuba Brecka [Tue, 16 Dec 2014 04:46:15 +0000 (04:46 +0000)]
Add an MACOS_VERSION_UNKNOWN_NEWER enum value for OS X versions above 10.10.
We recently had a broken version check because an newer OS X version is treated as MACOS_VERSION_UNKNOWN which is less than all the defined values. Let's have a separate enum value for unknown but newer versions, so the ">=" and "<=" version checks still work even in upcoming OS X releases.
Reviewed at http://reviews.llvm.org/D6137
llvm-svn: 224315
Saleem Abdulrasool [Tue, 16 Dec 2014 04:10:10 +0000 (04:10 +0000)]
ARM: 80-column
clang-format a function with an overly long string constant. NFC.
llvm-svn: 224314
Matthias Braun [Tue, 16 Dec 2014 04:03:38 +0000 (04:03 +0000)]
LiveRangeCalc: Rewrite subrange calculation
This changes subrange calculation to calculate subranges sequentially
instead of in parallel. The code is easier to understand that way and
addresses the code review issues raised about LiveOutData being
hard to understand/needing more comments by removing them :)
llvm-svn: 224313
Rafael Espindola [Tue, 16 Dec 2014 03:10:29 +0000 (03:10 +0000)]
Remove the last unnecessary member variable of mapped_file_region. NFC.
llvm-svn: 224312
Rafael Espindola [Tue, 16 Dec 2014 02:53:35 +0000 (02:53 +0000)]
Convert a member variable to a local variable. NFC.
llvm-svn: 224311
Enrico Granata [Tue, 16 Dec 2014 02:34:13 +0000 (02:34 +0000)]
Instead of rolling our own, use the C++11 sanctioned solution
llvm-svn: 224310
Rafael Espindola [Tue, 16 Dec 2014 02:19:26 +0000 (02:19 +0000)]
Remove unused member and simplify. NFC.
llvm-svn: 224309
Alexey Samsonov [Tue, 16 Dec 2014 01:52:55 +0000 (01:52 +0000)]
Fix data symbolization with libbacktrace. Patch by Jakub Jelinek!
llvm-svn: 224308
Rafael Espindola [Tue, 16 Dec 2014 01:43:41 +0000 (01:43 +0000)]
Start adding thin archive support.
This is just sufficient for 'ar t' to work.
llvm-svn: 224307
Greg Clayton [Tue, 16 Dec 2014 01:33:17 +0000 (01:33 +0000)]
If a binary was stripped we sometimes didn't show the ivars of an Objective C class correctly. Now we do as we consult the runtime data for the class so we don't have to have a symbol in the symbol table.
Fixed:
1 - try the symbol table symbol for an ObjC ivar and use it if available
2 - fall back to using the runtime data since it is slower to gather via memory read
3 - Fixed our hidden ivars test case to test this to ensure we don't regress
4 - split out a test case in the hidden ivars to cover only the part that was failing so we don't have an expected failure for all of the other content in the test.
<rdar://problem/
18882687>
llvm-svn: 224306
Alexey Samsonov [Tue, 16 Dec 2014 01:23:03 +0000 (01:23 +0000)]
[ASan] Allow to atomically modify malloc_context_size at runtime.
Summary:
Introduce __asan::malloc_context_size atomic that is used to determine
required malloc/free stack trace size. It is initialized with
common_flags()->malloc_context_size flag, but can later be overwritten
at runtime (e.g. when ASan is activated / deactivated).
Test Plan: regression test suite
Reviewers: kcc, eugenis
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D6645
llvm-svn: 224305
Jonathan Roelofs [Tue, 16 Dec 2014 01:18:11 +0000 (01:18 +0000)]
Appease the c++14 buildbots
llvm-svn: 224304
Hans Wennborg [Tue, 16 Dec 2014 01:15:01 +0000 (01:15 +0000)]
Clarify the code in checkDLLAttribute()
Update the comments to make it more clear what's going on, and address
Richard's comments from PR21718. This doesn't fix that bug, but hopefully
makes the code easier to understand.
llvm-svn: 224303
Kevin Enderby [Tue, 16 Dec 2014 01:14:45 +0000 (01:14 +0000)]
Fix a bug in llvm-objdump’s -private-headers for 32-bit Mach-O files
printing the section header. And add some tests for this for 32-bit files.
llvm-svn: 224302
Marshall Clow [Tue, 16 Dec 2014 00:59:59 +0000 (00:59 +0000)]
Comment out the breaking tests until I figure out what's going on here.
llvm-svn: 224301
Jonathan Roelofs [Tue, 16 Dec 2014 00:48:13 +0000 (00:48 +0000)]
Fix installheaders target's permissions
llvm-svn: 224300
David Majnemer [Tue, 16 Dec 2014 00:46:30 +0000 (00:46 +0000)]
Sema: Check value dependent casts when possible
We know that const_cast<char *>((void)Something) is ill-formed, even if
'Something' is dependent because you can't cast from void to a pointer
type.
This fixes PR21845.
llvm-svn: 224299
Marshall Clow [Tue, 16 Dec 2014 00:46:23 +0000 (00:46 +0000)]
Once more w/o the typo.
llvm-svn: 224298
Marshall Clow [Tue, 16 Dec 2014 00:45:47 +0000 (00:45 +0000)]
Fix the literal string that I said would be six elements long to actually be six elements long. Octal. Sheesh.
llvm-svn: 224297
Marshall Clow [Tue, 16 Dec 2014 00:30:07 +0000 (00:30 +0000)]
Add test to ensure that iterator_traits<NotAnIterator> doesn't have a value type
llvm-svn: 224295
Adrian Prantl [Tue, 16 Dec 2014 00:20:49 +0000 (00:20 +0000)]
ARM/AArch64: Attach the FrameSetup MIFlag to CFI instructions.
Debug info marks the first instruction without the FrameSetup flag
as being the end of the function prologue. Any CFI instructions in the
middle of the function prologue would cause debug info to end the prologue
too early and worse, attach the line number of the CFI instruction, which
incidentally is often 0.
llvm-svn: 224294
Colin LeMahieu [Tue, 16 Dec 2014 00:07:24 +0000 (00:07 +0000)]
[Hexagon] Adding doubleword multiplies with and without accumulation.
llvm-svn: 224293
Marshall Clow [Mon, 15 Dec 2014 23:57:56 +0000 (23:57 +0000)]
Implement LWG 2217 - operator==(sub_match, string) slices on embedded '\0's
llvm-svn: 224292
Michael Ilseman [Mon, 15 Dec 2014 23:41:21 +0000 (23:41 +0000)]
Sink the isa into the assert
llvm-svn: 224291
Enrico Granata [Mon, 15 Dec 2014 23:36:23 +0000 (23:36 +0000)]
Now that AddressOf() does sane things with const results, this check is wrong. Since this is actually quite orthogonal to what this test is all about, actually get rid of the assertions
llvm-svn: 224290
Colin LeMahieu [Mon, 15 Dec 2014 23:29:37 +0000 (23:29 +0000)]
[Hexagon] Adding halfword to doubleword multiplies.
llvm-svn: 224289
Colin LeMahieu [Mon, 15 Dec 2014 23:19:07 +0000 (23:19 +0000)]
[Hexagon] Adding logical-logical accumulation instructions and tests.
llvm-svn: 224288
Reid Kleckner [Mon, 15 Dec 2014 23:16:32 +0000 (23:16 +0000)]
Diagnose function template definitions inside functions
The parser can only be tricked into parsing a function template
definition by inserting a typename keyword before the function template
declaration. This used to make us crash, and now it's fixed.
While here, remove an unneeded boolean parameter from ParseDeclGroup.
This boolean always corresponded to non-typedef declarators at file
scope. ParseDeclGroup already has precise diagnostics for the function
definition typedef case, so we can let that through.
Fixes PR21839.
llvm-svn: 224287
Kostya Serebryany [Mon, 15 Dec 2014 23:02:57 +0000 (23:02 +0000)]
[asan] introduce __sanitizer_set_death_callback, deprecate __asan_set_death_callback
llvm-svn: 224286
Sanjoy Das [Mon, 15 Dec 2014 22:50:15 +0000 (22:50 +0000)]
Teach ScalarEvolution to exploit min and max expressions when proving
isKnownPredicate.
The motivation for this change is to optimize away checks in loops
like this:
limit = min(t, len)
for (i = 0 to limit)
if (i >= len || i < 0) throw_array_of_of_bounds();
a[i] = ...
Differential Revision: http://reviews.llvm.org/D6635
llvm-svn: 224285
Simon Pilgrim [Mon, 15 Dec 2014 22:45:48 +0000 (22:45 +0000)]
Added missing tests for X86vzmovl folding. NFC.
llvm-svn: 224284
JF Bastien [Mon, 15 Dec 2014 22:34:58 +0000 (22:34 +0000)]
x86: Emit LOCK prefix after DATA16
Summary: x86 allows either ordering for the LOCK and DATA16 prefixes, but using GCC+GAS leads to different code generation than using LLVM. This change matches the order that GAS emits the x86 prefixes when a semicolon isn't used in inline assembly (see tc-i386.c comment before define LOCK_PREFIX), and helps simplify tooling that operates on the instruction's byte sequence (such as NaCl's validator). This change shouldn't have any performance impact.
Test Plan: ninja check
Reviewers: craig.topper, jvoung
Subscribers: jfb, llvm-commits
Differential Revision: http://reviews.llvm.org/D6630
llvm-svn: 224283
Colin LeMahieu [Mon, 15 Dec 2014 22:10:37 +0000 (22:10 +0000)]
[Hexagon] Adding a number of additional multiply forms with tests.
llvm-svn: 224282
Michael Ilseman [Mon, 15 Dec 2014 21:47:09 +0000 (21:47 +0000)]
Clean up warning about unused variable
llvm-svn: 224281
Duncan P. N. Exon Smith [Mon, 15 Dec 2014 21:43:20 +0000 (21:43 +0000)]
Hand-modify a testcase (still PR21532)
Bot was still tripping [1] on a testcase the upgrade script didn't
handle in 224269. This is still fallout from r224257.
[1]: http://lab.llvm.org:8011/builders/polly-amd64-linux/builds/25435
llvm-svn: 224280
Roman Divacky [Mon, 15 Dec 2014 21:41:59 +0000 (21:41 +0000)]
Silene -Wreorder warning.
llvm-svn: 224279
Matthias Braun [Mon, 15 Dec 2014 21:36:35 +0000 (21:36 +0000)]
Revert "LiveRangeCalc: Rewrite subrange calculation"
Revert until I find out why non-subreg enabled targets break.
This reverts commit
6097277eefb9c5fb35a7f493c783ee1fd1b9d6a7.
llvm-svn: 224278
Michael Ilseman [Mon, 15 Dec 2014 21:36:29 +0000 (21:36 +0000)]
Revert of r223763, in spirit.
r223763 was made to work around a temporary issue where a user of the
JIT was passing down a declaration (incorrectly). This shouldn't
occur, so assert rather than silently continue.
llvm-svn: 224277
Duncan P. N. Exon Smith [Mon, 15 Dec 2014 21:34:19 +0000 (21:34 +0000)]
Update lib/profile tests for metadata assembly change
Running the upgrade script from PR21532. Hopefully this will unstick
compiler-rt bots [1] after r224257.
[1]: http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA_check/181/
llvm-svn: 224276
Enrico Granata [Mon, 15 Dec 2014 21:30:36 +0000 (21:30 +0000)]
Provide a SBFrame.register/.reg helper on the Python side of SBFrame to vend a flattened view of registers
Our actual view of registers is a set of register sets, each one of which contains a subset of the actual registers
This makes trivial scripting operations tedious ("I just want to read r7!")
This helper allows things like: print lldb.frame.reg["r7"]
Fixes rdar://
19185662
llvm-svn: 224275
Mark Heffernan [Mon, 15 Dec 2014 21:19:53 +0000 (21:19 +0000)]
Clarify HowFarToZero computation when the step is a positive power of two. Functionally this should be identical to the existing code except for the case where Step is maximally negative (eg, INT_MIN). We now punt in that one corner case to make reasoning about the code easier.
llvm-svn: 224274
Colin LeMahieu [Mon, 15 Dec 2014 21:17:03 +0000 (21:17 +0000)]
[Hexagon] Adding misc multiply encodings and tests.
llvm-svn: 224273
Matthias Braun [Mon, 15 Dec 2014 21:16:21 +0000 (21:16 +0000)]
LiveRangeCalc: Rewrite subrange calculation
This changes subrange calculation to calculate subranges sequentially
instead of in parallel. The code is easier to understand that way and
addresses the code review issues raised about LiveOutData being
hard to understand/needing more comments by removing them :)
llvm-svn: 224272
Reid Kleckner [Mon, 15 Dec 2014 21:07:16 +0000 (21:07 +0000)]
Handle errors in lambda prototype instantiation correctly
Previously we would attempt to build a TypeSourceInfo for a null type,
and then we would forget to pop the function scope before returning an
error.
Reviewers: rsmith
Differential Revision: http://reviews.llvm.org/D6665
llvm-svn: 224271
Justin Bogner [Mon, 15 Dec 2014 20:44:05 +0000 (20:44 +0000)]
profile: Add the relevant parts of lib/profile to cc_kext on darwin
Patch by Lawrence D'Anna. Thanks!
llvm-svn: 224270
Duncan P. N. Exon Smith [Mon, 15 Dec 2014 20:28:50 +0000 (20:28 +0000)]
Run upgrade script from PR21532 to match LLVM changes
Update tests for LLVM assembly format change in r224257 using the script
attached to PR21532. I'm hoping this unsticks the bot [1].
[1]: http://lab.llvm.org:8011/builders/polly-amd64-linux/builds/25432
llvm-svn: 224269
Daniel Marjamaki [Mon, 15 Dec 2014 20:22:33 +0000 (20:22 +0000)]
Sema: Cleanup and improve string-plus-char checking.
Patch by Anders Rönnholm
llvm-svn: 224268
Colin LeMahieu [Mon, 15 Dec 2014 20:17:46 +0000 (20:17 +0000)]
[Hexagon] Adding doubleworld accumulating multiplies of halfwords.
llvm-svn: 224267
Colin LeMahieu [Mon, 15 Dec 2014 20:10:28 +0000 (20:10 +0000)]
[Hexagon] Adding accumulating half word multiplies.
llvm-svn: 224266
Colin LeMahieu [Mon, 15 Dec 2014 20:01:59 +0000 (20:01 +0000)]
[Hexagon] Adding multiply with rnd/sat/rndsat
llvm-svn: 224265
Ahmed Bougacha [Mon, 15 Dec 2014 19:47:35 +0000 (19:47 +0000)]
[X86] And also test INSERTPS shuffle mask pretty-printing.
For r224260.
llvm-svn: 224264
Matthias Braun [Mon, 15 Dec 2014 19:40:46 +0000 (19:40 +0000)]
LiveRangeCalc: use more range based for loops; NFC
llvm-svn: 224263
Adrian Prantl [Mon, 15 Dec 2014 19:25:33 +0000 (19:25 +0000)]
Update this testcase for the new metadata assembler syntax.
llvm-svn: 224262
Colin LeMahieu [Mon, 15 Dec 2014 19:22:07 +0000 (19:22 +0000)]
[Hexagon] Adding encoding bits for halfword multiplies.
llvm-svn: 224261
Ahmed Bougacha [Mon, 15 Dec 2014 19:17:54 +0000 (19:17 +0000)]
[X86] Also pretty-print shuffle mask for INSERTPS rm variants.
llvm-svn: 224260
Duncan P. N. Exon Smith [Mon, 15 Dec 2014 19:10:08 +0000 (19:10 +0000)]
IR: Make metadata typeless in assembly, clang side
Match LLVM changes from r224257.
llvm-svn: 224259
Hafiz Abid Qadeer [Mon, 15 Dec 2014 19:09:40 +0000 (19:09 +0000)]
Replace ioctl with select to reduce processor usage by lldb-mi on OSX.
This saga started with a hang on OSX. 2 solutions were proposed.
1) 'select' based solution works ok on OSX but slows down test completion time
on Linux many times.
2) 'ioctl' base solution also works but it causes heavy processor usage on OSX
as reported by Ilia K.
But as the original hang did not occur on Linux so this commit re-introduces the
'select' in conditional code so that it only runs for OSX. There is no need for
this 'fix' to run on Linux.
Initial patch by Ilia K <ki.stfu@gmail.com>. A few changes were made by me.
llvm-svn: 224258
Duncan P. N. Exon Smith [Mon, 15 Dec 2014 19:07:53 +0000 (19:07 +0000)]
IR: Make metadata typeless in assembly
Now that `Metadata` is typeless, reflect that in the assembly. These
are the matching assembly changes for the metadata/value split in
r223802.
- Only use the `metadata` type when referencing metadata from a call
intrinsic -- i.e., only when it's used as a `Value`.
- Stop pretending that `ValueAsMetadata` is wrapped in an `MDNode`
when referencing it from call intrinsics.
So, assembly like this:
define @foo(i32 %v) {
call void @llvm.foo(metadata !{i32 %v}, metadata !0)
call void @llvm.foo(metadata !{i32 7}, metadata !0)
call void @llvm.foo(metadata !1, metadata !0)
call void @llvm.foo(metadata !3, metadata !0)
call void @llvm.foo(metadata !{metadata !3}, metadata !0)
ret void, !bar !2
}
!0 = metadata !{metadata !2}
!1 = metadata !{i32* @global}
!2 = metadata !{metadata !3}
!3 = metadata !{}
turns into this:
define @foo(i32 %v) {
call void @llvm.foo(metadata i32 %v, metadata !0)
call void @llvm.foo(metadata i32 7, metadata !0)
call void @llvm.foo(metadata i32* @global, metadata !0)
call void @llvm.foo(metadata !3, metadata !0)
call void @llvm.foo(metadata !{!3}, metadata !0)
ret void, !bar !2
}
!0 = !{!2}
!1 = !{i32* @global}
!2 = !{!3}
!3 = !{}
I wrote an upgrade script that handled almost all of the tests in llvm
and many of the tests in cfe (even handling many `CHECK` lines). I've
attached it (or will attach it in a moment if you're speedy) to PR21532
to help everyone update their out-of-tree testcases.
This is part of PR21532.
llvm-svn: 224257
Paul Robinson [Mon, 15 Dec 2014 18:57:28 +0000 (18:57 +0000)]
Warn when attribute 'optnone' conflicts with attributes on a
different declaration of the same function.
llvm-svn: 224256
Michael Ilseman [Mon, 15 Dec 2014 18:48:43 +0000 (18:48 +0000)]
Silence more static analyzer warnings.
Add in definedness checks for shift operators, null checks when
pointers are assumed by the code to be non-null, and explicit
unreachables.
llvm-svn: 224255
Reid Kleckner [Mon, 15 Dec 2014 17:56:02 +0000 (17:56 +0000)]
Move mips1 tests to test/MC/Disassembler/Mips/mips1
This matches the pattern of the mips2 and 3 tests, as well as our normal
conventions.
llvm-svn: 224254
Vladimir Medic [Mon, 15 Dec 2014 16:19:34 +0000 (16:19 +0000)]
Add disassembler tests for mips3 platform. There are no functional changes.
llvm-svn: 224253
Vladimir Medic [Mon, 15 Dec 2014 15:58:20 +0000 (15:58 +0000)]
Add disassembler tests for mips2 platform. There are no functional changes.
llvm-svn: 224252
Vladimir Medic [Mon, 15 Dec 2014 15:22:33 +0000 (15:22 +0000)]
This is the first in a series of patches that add missing disassembler tests for mips platform. The patches are divided per version of mips CPU to keep the patches smaller and ease the review. There are no functional changes, code is changed only if new tests reveal a bug.This patch adds disassembler tests for mips1 CPU.
llvm-svn: 224251
Samuel Benzaquen [Mon, 15 Dec 2014 15:09:22 +0000 (15:09 +0000)]
Add voidType() matcher.
Summary: Add voidType() matcher.
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D6656
llvm-svn: 224250
Aaron Ballman [Mon, 15 Dec 2014 14:25:12 +0000 (14:25 +0000)]
Changing a cast from unsigned to uint64_t, should be NFC in practice.
llvm-svn: 224249
Elena Demikhovsky [Mon, 15 Dec 2014 14:14:10 +0000 (14:14 +0000)]
Added a test related to 224247 revision
llvm-svn: 224248
Elena Demikhovsky [Mon, 15 Dec 2014 14:09:53 +0000 (14:09 +0000)]
Sink store based on alias analysis
- by Ella Bolshinsky
The alias analysis is used define whether the given instruction
is a barrier for store sinking. For 2 identical stores, following
instructions are checked in the both basic blocks, to determine
whether they are sinking barriers.
http://reviews.llvm.org/D6420
llvm-svn: 224247
Michael Kuperstein [Mon, 15 Dec 2014 13:18:21 +0000 (13:18 +0000)]
[X86] Break false dependencies before partial register updates when the source operand is in memory
Adds the various "rm" instruction variants into the list of instructions that have a partial register update. Also adds all variants of SQRTSD that were missing in the original list.
Differential Revision: http://reviews.llvm.org/D6620
llvm-svn: 224246
Rui Ueyama [Mon, 15 Dec 2014 12:20:13 +0000 (12:20 +0000)]
Replace ReaderError with DynamicError.
ReaderErrorCategory was used only at one place. We now have a
DynamicErrorCategory for this kind of one-time error, so use it.
The calling function doesn't really care the type of an error, so
ReaderErrorCategory was actually dead code.
llvm-svn: 224245
Suyog Sarda [Mon, 15 Dec 2014 12:19:46 +0000 (12:19 +0000)]
Typo Correction in Test Case. NFC.
llvm-svn: 224244
Kumar Sukhani [Mon, 15 Dec 2014 12:16:36 +0000 (12:16 +0000)]
[ubsan][arm] supporting misaligned testcase
After previous commit: http://reviews.llvm.org/rL224242, misaligned testcase is now supported on ARM also
llvm-svn: 224243
Kumar Sukhani [Mon, 15 Dec 2014 10:52:06 +0000 (10:52 +0000)]
[UBSan][MIPS] Adding support of MIPS64 in UBSan testing
On mips64 addresses are 40-bit. Where as a 48 bit address is used in TypeCheck/misaligned.cpp.
Using regular expression for that address.
reviewed by : samsonov
submitted by: sagar
llvm-svn: 224242
Elena Demikhovsky [Mon, 15 Dec 2014 10:03:52 +0000 (10:03 +0000)]
AVX-512: Added EXPAND instructions and intrinsics.
llvm-svn: 224241
David Majnemer [Mon, 15 Dec 2014 10:00:35 +0000 (10:00 +0000)]
Sema: Don't diagnose string + int if the int is value dependent
Don't send a value dependent expression into the expression evaluator,
HandleSizeof would crash. Making HandleSizeof handle dependent types
would noisily warn about the operation even if everything turns out OK
after instantiation.
This fixes PR21848.
llvm-svn: 224240
Kumar Sukhani [Mon, 15 Dec 2014 09:20:06 +0000 (09:20 +0000)]
[UBSan][MIPS] Adding support for MIPS64
No MIPS64 architecture dependant code
reviewed by : samsonov
submitted by: sagar
llvm-svn: 224239
David Majnemer [Mon, 15 Dec 2014 09:03:58 +0000 (09:03 +0000)]
Preprocessor: Recover instead of mutating a token in ExpandBuiltinMacro
We would CreateString on arbitrary garbage instead of just skipping to
the end of the builtin macro. Eventually, this would cause us to crash
because we would end up replacing the contents of a character token with
a numeric literal.
This fixes PR21825.
llvm-svn: 224238
David Majnemer [Mon, 15 Dec 2014 07:46:12 +0000 (07:46 +0000)]
Sema: Don't leave switch stack inconsistent when recovering
We would exit Sema::ActOnFinishSwitchStmt early if we didn't have a
body. This would leave an extra SwitchStmt on the SwitchStack.
This fixes PR21841.
llvm-svn: 224237
Rui Ueyama [Mon, 15 Dec 2014 07:22:29 +0000 (07:22 +0000)]
Remove dead code.
This field was not even initialized properly.
llvm-svn: 224236
Rui Ueyama [Mon, 15 Dec 2014 07:14:32 +0000 (07:14 +0000)]
Protect doParse() because that's not a public interface.
llvm-svn: 224235
Alexander Musman [Mon, 15 Dec 2014 07:08:38 +0000 (07:08 +0000)]
Test for 'omp for' (for r224233).
llvm-svn: 224234
Alexander Musman [Mon, 15 Dec 2014 07:07:06 +0000 (07:07 +0000)]
First patch with codegen of the 'omp for' directive. It implements
the simplest case, which is used when no chunk_size is specified in
the schedule(static) or no 'schedule' clause is specified - the
iteration space is divided by the library into chunks that are
approximately equal in size, and at most one chunk is distributed
to each thread. In this case, we do not need an outer loop in each
thread - each thread requests once which iterations range it should
handle (using __kmpc_for_static_init runtime call) and then runs the
inner loop on this range.
Differential Revision: http://reviews.llvm.org/D5865
llvm-svn: 224233