Sanjay Patel [Fri, 30 Jan 2015 16:58:58 +0000 (16:58 +0000)]
tidy up; NFC
llvm-svn: 227582
Nico Weber [Fri, 30 Jan 2015 16:53:11 +0000 (16:53 +0000)]
Follow-up to r217302 and r227555: Don't crash on inline ~A::A() if A is an int.
Even with r227555, this still crashed:
struct S {
int A;
~A::A() {}
};
That's because ParseOptionalCXXScopeSpecifier()'s call to
ActOnCXXNestedNameSpecifier() doesn't mark the scope spec as invalid if sema
thought it's a good idea to fixit-correct "::" to ":". For the diagnostic
improvement done in r217302, we never want :: to be interpreted as :, so fix
this by setting ColonSacred to false temporarily.
Found by SLi's bot.
llvm-svn: 227581
Ed Maste [Fri, 30 Jan 2015 16:45:24 +0000 (16:45 +0000)]
Adapt test for tid format on non-Darwin platforms
llvm-svn: 227580
Ed Maste [Fri, 30 Jan 2015 16:33:02 +0000 (16:33 +0000)]
Restrict SigtrampUnwind test to Darwin only
It needs OS-specific knowledge and has not yet been adapted to other
systems.
llvm-svn: 227579
Ed Maste [Fri, 30 Jan 2015 16:31:07 +0000 (16:31 +0000)]
Skip Objective-C test on non-Darwin platforms
llvm-svn: 227578
Nathan Sidwell [Fri, 30 Jan 2015 14:21:35 +0000 (14:21 +0000)]
Code cleanup
Parser::ParseLexedMethodDeclaration: Use local var for Param
Sema::MergeCXXFunctionDecls: Use hasInheritedDefaultArg
llvm-svn: 227577
Chandler Carruth [Fri, 30 Jan 2015 13:33:42 +0000 (13:33 +0000)]
[PM] Sink the population of the pass manager with target-specific
analyses back into the LTO code generator.
The pass manager builder (and the transforms library in general)
shouldn't be referencing the target machine at all.
This makes the LTO population work like the others -- the data layout
and target transform info need to be pre-populated.
llvm-svn: 227576
Chandler Carruth [Fri, 30 Jan 2015 13:30:43 +0000 (13:30 +0000)]
Fix a warning introduced by r227557 due to a default label in a fully
covering switch.
llvm-svn: 227575
NAKAMURA Takumi [Fri, 30 Jan 2015 13:01:19 +0000 (13:01 +0000)]
[Cygming] Seek also chkstk_ms, or JIT fails with DLL builds. It is fixup for r227519.
llvm-svn: 227574
NAKAMURA Takumi [Fri, 30 Jan 2015 13:01:00 +0000 (13:01 +0000)]
Regenerate configure since r227090.
llvm-svn: 227573
Viktor Kutuzov [Fri, 30 Jan 2015 12:58:37 +0000 (12:58 +0000)]
[Sanitizers] Intercept gethost functions on FreeBSD
Committed unreviewed with permission.
llvm-svn: 227572
Viktor Kutuzov [Fri, 30 Jan 2015 12:55:40 +0000 (12:55 +0000)]
[Msan] Fix the shmctl unit tests to pass on FreeBSD
Differential Revision: http://reviews.llvm.org/D7253
llvm-svn: 227571
Viktor Kutuzov [Fri, 30 Jan 2015 12:43:52 +0000 (12:43 +0000)]
[Sanitizers] Introduce GET_LINK_MAP_BY_DLOPEN_HANDLE() macro
Differential Revision: http://reviews.llvm.org/D7233
llvm-svn: 227570
Tobias Grosser [Fri, 30 Jan 2015 12:33:43 +0000 (12:33 +0000)]
Correct a typo in a comment
llvm-svn: 227569
Toma Tabacu [Fri, 30 Jan 2015 11:18:50 +0000 (11:18 +0000)]
[mips] Manually replace JAL pseudo-instructions with their JALR equivalent, instead of using InstAlias.
Summary:
This is needed by the .cprestore assembler directive.
This directive needs to be able to insert an LW instruction after every JALR replacement of a JAL pseudo-instruction
(and never after a JALR which has NOT been a result of a pseudo-instruction replacement).
The problem with using InstAlias for these is that after it replaces the pseudo-instruction, we can't find out if the resulting JALR instruction
was generated by an InstAlias or not, so we don't know whether or not to insert our LW instruction.
By replacing it manually, we know when the pseudo-instruction replacement happens and we can insert the LW instruction correctly.
Reviewers: dsanders
Reviewed By: dsanders
Subscribers: emaste, llvm-commits
Differential Revision: http://reviews.llvm.org/D5601
llvm-svn: 227568
Filipe Cabecinhas [Fri, 30 Jan 2015 11:17:56 +0000 (11:17 +0000)]
Remove unneeded code
We don't really care about enabling RTTI with -fexceptions, only with
-fcxx-exceptions.
llvm-svn: 227567
Filipe Cabecinhas [Fri, 30 Jan 2015 10:57:58 +0000 (10:57 +0000)]
[bitcode reader] Fix an assert on invalid type tables
Bug found with afl-fuzz
llvm-svn: 227566
Fraser Cormack [Fri, 30 Jan 2015 10:51:46 +0000 (10:51 +0000)]
Fix OpenCL 1.2 double as an optional core feature behaviour
In OpenCL 1.2, using double no longer requires using the pragma cl_khr_fp64,
instead a kernel is allowed to use double, but must first have queried
clGetDeviceInfo's CL_DEVICE_DOUBLE_FP_CONFIG.
Page 197, section 6.1.1 of the OpenCL 1.2 specification has a footnote 23
describing this behaviour.
I've also added test cases such that the pragma must be used if targeting
OpenCL 1.0 or 1.1, but is ignored in 1.2 and 2.0.
Patch by Neil Henning!
Reviewers: Pekka Jääskeläinen
Differential Revision: http://reviews.llvm.org/D7245
llvm-svn: 227565
NAKAMURA Takumi [Fri, 30 Jan 2015 10:09:26 +0000 (10:09 +0000)]
Introduce llvm/test/LTO/X86. LTO tests may be assumed as target-specific.
llvm-svn: 227564
NAKAMURA Takumi [Fri, 30 Jan 2015 09:53:37 +0000 (09:53 +0000)]
Introduce llvm/test/LTO/ARM for arm-specific LTO test(s).
llvm-svn: 227563
Owen Anderson [Fri, 30 Jan 2015 09:05:49 +0000 (09:05 +0000)]
Change a very hot piece of code in TableGen's register unit computations to use bit vectors rather than arrays.
For target descriptions with very large and very dense register files, TableGen
can take an extremely long time to run. This change makes a dent in that (~15%
in my measurements) by accelerating the single hottest operation with better data
structures.
I believe there's still a lot of room to make this even faster with more global
changes that require replacing some of the existing datastructures in this area
with bit vectors, but that's a more involved change and I wanted to get this
simpler improvement in first.
llvm-svn: 227562
Hao Liu [Fri, 30 Jan 2015 07:33:31 +0000 (07:33 +0000)]
Move the target specific test case arbitrary-induction-step.ll to test/Transforms/LoopVectorize/AArch64 folder.
llvm-svn: 227561
Yury Gribov [Fri, 30 Jan 2015 06:20:43 +0000 (06:20 +0000)]
[Sanitizer] Make BlockingMutex really linker initialized.
Differential Revision: http://reviews.llvm.org/D7171
llvm-svn: 227560
Yury Gribov [Fri, 30 Jan 2015 06:18:46 +0000 (06:18 +0000)]
Replace code dup with a macro.
Differential Revision: http://reviews.llvm.org/D7172
llvm-svn: 227559
Simon Atanasyan [Fri, 30 Jan 2015 05:42:57 +0000 (05:42 +0000)]
[Core] Fix "variable ‘comp’ has function type" error shown by gcc
llvm-svn: 227558
Hao Liu [Fri, 30 Jan 2015 05:02:21 +0000 (05:02 +0000)]
[LoopVectorize] Induction variables: support arbitrary constant step.
Previously, only -1 and +1 step values are supported for induction variables. This patch extends LV to support
arbitrary constant steps.
Initial patch by Alexey Volkov. Some bug fixes are added in the following version.
Differential Revision: http://reviews.llvm.org/D6051 and http://reviews.llvm.org/D7193
llvm-svn: 227557
David Majnemer [Fri, 30 Jan 2015 05:01:23 +0000 (05:01 +0000)]
Sema: Disable template instantiation once a fatal error is raised
Fatal errors disable all further diagnostics. Continuing to permit
template instantiation does nothing but make it take longer for clang to
finish with the TU.
Instead, halt all further instantiation.
Fixed in PR22396.
llvm-svn: 227556
Nico Weber [Fri, 30 Jan 2015 04:05:15 +0000 (04:05 +0000)]
Follow-up to r217302: Don't crash on ~A::A() if A is undeclared.
llvm-svn: 227555
Nico Weber [Fri, 30 Jan 2015 03:47:03 +0000 (03:47 +0000)]
Typo fixo.
llvm-svn: 227554
Nico Weber [Fri, 30 Jan 2015 02:35:21 +0000 (02:35 +0000)]
Wrap to 80 cols by removing trailing whitespace. No behavior change.
llvm-svn: 227553
Jason Molenda [Fri, 30 Jan 2015 02:28:06 +0000 (02:28 +0000)]
Small tweak to the name of kernel binaries that we look
for; match files starting with "mach", not "mach." so
the old common name mach_kernel will still be matched.
llvm-svn: 227552
Rui Ueyama [Fri, 30 Jan 2015 02:15:57 +0000 (02:15 +0000)]
Remove useless DEBUG_WITH_TYPE.
We have a DEBUG_TYPE macro for the same debug string already
at the beginning of the file.
llvm-svn: 227551
Hao Liu [Fri, 30 Jan 2015 02:13:53 +0000 (02:13 +0000)]
[AArch64]Fix PR21675, a bug about lowering llvm.ctpop.i32. We should noot use "DAG.getUNDEF(MVT::v8i8)" to get all zero vector.
Patch by Wei-cheng Wang.
llvm-svn: 227550
Rui Ueyama [Fri, 30 Jan 2015 02:11:59 +0000 (02:11 +0000)]
Replace SimpleFileWrapper with a function.
SimpleFileWrapper was a class to wrap an existing (possibly non-mutable)
file as a mutable file. We used instances of the class in RoundTrip*
passes, because the passes convert mutable files to non-mutable files,
and we needed to convert them back to mutable.
That feature can be implemented without defining a new class. Generally
speaking, if we can implement a feature without defining a class and
using only public interface of exsiting classes, that's preferred way
to do that. And this is the case.
llvm-svn: 227549
Eric Christopher [Fri, 30 Jan 2015 02:11:26 +0000 (02:11 +0000)]
Use the cached subtarget in PPCFrameLowering.
llvm-svn: 227548
Eric Christopher [Fri, 30 Jan 2015 02:11:24 +0000 (02:11 +0000)]
Migrate some of PPC away from the use of bare getSubtarget/getSubtargetImpl.
llvm-svn: 227547
Eric Christopher [Fri, 30 Jan 2015 02:11:21 +0000 (02:11 +0000)]
Migrage PPCRegisterInfo to use the cached subtarget.
llvm-svn: 227546
Richard Smith [Fri, 30 Jan 2015 02:04:26 +0000 (02:04 +0000)]
Teach AST printing to not print whitespace inside {} and () for initialization,
to match LLVM's preferred style.
llvm-svn: 227545
Adrian Prantl [Fri, 30 Jan 2015 01:55:25 +0000 (01:55 +0000)]
Fix PR22386. The inliner moves static allocas to the entry basic block
so we need to move the dbg.declare intrinsics that describe them, too.
llvm-svn: 227544
Rui Ueyama [Fri, 30 Jan 2015 01:52:23 +0000 (01:52 +0000)]
Explicitly write type instead of auto.
Now it is clear that std::move() is meaningless here.
llvm-svn: 227543
Eric Christopher [Fri, 30 Jan 2015 01:50:09 +0000 (01:50 +0000)]
Migrate a bare getSubtarget call to query the MachineFunction
for the target dependent one.
llvm-svn: 227542
Eric Christopher [Fri, 30 Jan 2015 01:50:07 +0000 (01:50 +0000)]
Migrate NVPTXISelLowering to take the subtarget that it's dependent
upon as an argument and store/use that in the entire function.
llvm-svn: 227541
Nico Weber [Fri, 30 Jan 2015 01:48:49 +0000 (01:48 +0000)]
Weaken an assertion that isn't true for invalid input.
llvm-svn: 227540
Eric Christopher [Fri, 30 Jan 2015 01:41:01 +0000 (01:41 +0000)]
Remove unused argument.
llvm-svn: 227539
Eric Christopher [Fri, 30 Jan 2015 01:40:59 +0000 (01:40 +0000)]
Migrate NVPTXISelDAGToDAG's getSubtarget to a runOnMachineFunction
version. Update NVPTXInstrInfo accordingly.
llvm-svn: 227538
Rui Ueyama [Fri, 30 Jan 2015 01:35:38 +0000 (01:35 +0000)]
Remove unused parameter.
llvm-svn: 227536
Eric Christopher [Fri, 30 Jan 2015 01:30:01 +0000 (01:30 +0000)]
Remove calls to bare getSubtarget and clean up the functions
accordingly.
llvm-svn: 227535
Rui Ueyama [Fri, 30 Jan 2015 01:18:43 +0000 (01:18 +0000)]
Remove remaining code for PPC ELF target.
llvm-svn: 227534
Akira Hatanaka [Fri, 30 Jan 2015 01:16:24 +0000 (01:16 +0000)]
[LTO] Scan all per-function subtargets when collecting runtime library names.
accumulateAndSortLibcalls in LTOCodeGenerator.cpp collects names of runtime
library functions which are used to identify user-defined functions that should
be protected. Previously, this function would only scan the TargetLowering
object belonging to the "main" subtarget for the library function names. This
commit changes it to scan all per-function subtargets.
Differential Revision: http://reviews.llvm.org/D7275
llvm-svn: 227533
Akira Hatanaka [Fri, 30 Jan 2015 01:14:28 +0000 (01:14 +0000)]
[llvm-lto] Add a line for setting LTOCodeGenerator's CPU string from command
line.
This is needed for a test case I plan to commit later.
llvm-svn: 227532
Eric Christopher [Fri, 30 Jan 2015 01:10:26 +0000 (01:10 +0000)]
Remove a few getSubtarget calls in AArch64 pass manager initialization.
llvm-svn: 227531
Eric Christopher [Fri, 30 Jan 2015 01:10:24 +0000 (01:10 +0000)]
Clean up some uses of getSubtarget in AArch64.
llvm-svn: 227530
Eric Christopher [Fri, 30 Jan 2015 01:10:18 +0000 (01:10 +0000)]
This only needs TargetInstrInfo, not the specialized one.
llvm-svn: 227529
Reid Kleckner [Fri, 30 Jan 2015 01:04:16 +0000 (01:04 +0000)]
clang-cl: Enable -fexceptions but not -fcxx-exceptions by default
This enables proper IRgen of SEH constructs.
llvm-svn: 227528
Alexey Samsonov [Fri, 30 Jan 2015 01:02:12 +0000 (01:02 +0000)]
[TSan] Fix -Werror=sign-compare warning. NFC.
llvm-svn: 227527
Rui Ueyama [Fri, 30 Jan 2015 00:47:33 +0000 (00:47 +0000)]
Remove unused #includes.
llvm-svn: 227526
Chandler Carruth [Fri, 30 Jan 2015 00:41:44 +0000 (00:41 +0000)]
[PM] Remove two very old and dead forward declarations for the prior
incarnation of target transform info.
This is in preparation for starting to redesign TTI to be amenable to
the new PM world.
llvm-svn: 227525
Johannes Doerfert [Fri, 30 Jan 2015 00:36:13 +0000 (00:36 +0000)]
[FIX] Activated a pointer test and removed obsolete comment
llvm-svn: 227524
Chris Bieneman [Fri, 30 Jan 2015 00:10:47 +0000 (00:10 +0000)]
Updating iOS.cmake to work with the latest Xcode and iOS 8 SDK.
llvm-svn: 227523
Chris Bieneman [Fri, 30 Jan 2015 00:10:43 +0000 (00:10 +0000)]
iOS doesn't have histedit.h available. We should gate use of libedit on whether or not this headers exists.
llvm-svn: 227522
Chris Bieneman [Fri, 30 Jan 2015 00:10:39 +0000 (00:10 +0000)]
iOS doesn't have crt_externs.h available, so we fall back to the posix method.
llvm-svn: 227521
Reid Kleckner [Fri, 30 Jan 2015 00:05:39 +0000 (00:05 +0000)]
x86: Remove unused variables not caught by MSVC =P
llvm-svn: 227520
Reid Kleckner [Thu, 29 Jan 2015 23:58:04 +0000 (23:58 +0000)]
x86: Fix large model calls to __chkstk for dynamic allocas
In the large code model, we now put __chkstk in %r11 before calling it.
Refactor the code so that we only do this once. Simplify things by using
__chkstk_ms instead of __chkstk on cygming. We already use that symbol
in the prolog emission, and it simplifies our logic.
Second half of PR18582.
llvm-svn: 227519
Filipe Cabecinhas [Thu, 29 Jan 2015 23:56:43 +0000 (23:56 +0000)]
Add some more PS4 driver settings related to rtti and exceptions.
Summary:
The PS4 defaults to -fno-rtti, and has to have rtti enabled when enabling
exceptions.
This commit makes clang add the -fno-rtti by default on the PS4, unless
-frtti was passed in.
It also diagnoses misuses for the PS4:
- Exceptions need rtti. Warn and enable rtti if no rtti flag was passed,
error if -fno-rtti was passed.
I also added a more general warning for when -fno-rtti is the default
(currently it's only on the PS4) and the vptr sanitizer is on.
Fixed a few tests, due to different flag order when passing cc1 arguments.
Reviewers: chandlerc
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D7250
llvm-svn: 227518
Eric Christopher [Thu, 29 Jan 2015 23:46:42 +0000 (23:46 +0000)]
Remove unnecessary calls to getSubtarget/getSubtargetImpl from the
MSP430 backend.
llvm-svn: 227517
Eric Christopher [Thu, 29 Jan 2015 23:46:39 +0000 (23:46 +0000)]
Remove unused header.
llvm-svn: 227516
Sanjay Patel [Thu, 29 Jan 2015 23:35:04 +0000 (23:35 +0000)]
Change SmallVector param to the more general ArrayRef; NFCI
llvm-svn: 227514
Eric Christopher [Thu, 29 Jan 2015 23:27:45 +0000 (23:27 +0000)]
Get rid of a few calls through the subtarget to get the ABI
that's actually sitting on the target machine.
llvm-svn: 227513
Eric Christopher [Thu, 29 Jan 2015 23:27:36 +0000 (23:27 +0000)]
Remove most of the TargetMachine::getSubtarget/getSubtargetImpl
calls that don't take a Function argument from Mips. Notable
exceptions: the AsmPrinter and MipsTargetObjectFile. The
latter needs to be fixed, and the former will be fixed when the
general AsmPrinter changes happen.
llvm-svn: 227512
Chandler Carruth [Thu, 29 Jan 2015 23:26:37 +0000 (23:26 +0000)]
[LPM] Remove a PPC64 hack to try to work around a bad interaction
between the linker's TLS optimizations and Clang's TLS code generation.
For now, Clang has been changed to disable linker TLS optimizations
until it (and LLVM more generally) are emitting TLS code sequences
compatible with the old bugs found in the linkers. That's a better fix
to handle bootstrapping on that platform.
llvm-svn: 227511
Rui Ueyama [Thu, 29 Jan 2015 23:23:57 +0000 (23:23 +0000)]
ELF: Check StringRef::getAsInteger's return value.
getAsInteger may partially update its result argument. We need to
check function return value to handle errors reliably.
llvm-svn: 227510
Kuba Brecka [Thu, 29 Jan 2015 23:19:26 +0000 (23:19 +0000)]
[compiler-rt] OS X: Update the CMake and Make builds to explicitely use libc++, mmacosx-version-min and SDKs
In both CMake and Makefiles, we are inconsistent about the use of libstdc++ vs. libc++, SDKs and minimum deployment targets for OS X. Let's fix the detection of SDKs, and let's explicitely set that we link against libc++ and mmacosx-version-min is 10.7.
llvm-svn: 227509
Reid Kleckner [Thu, 29 Jan 2015 23:09:37 +0000 (23:09 +0000)]
x86: Remove the W64ALLOCA pseudo
This is just an alias for CALL64pcrel32, and we can just use that opcode
with explicit defs in the MI.
No functionality change.
llvm-svn: 227508
Kostya Serebryany [Thu, 29 Jan 2015 23:01:07 +0000 (23:01 +0000)]
[fuzzer] add -use_full_coverage_set=1 which solves FullCoverageSetTest. This does not scale very well yet, but might be a good start.
llvm-svn: 227507
Chad Rosier [Thu, 29 Jan 2015 22:57:37 +0000 (22:57 +0000)]
[AArch64] Add INITIALIZE_PASS macros to AArch64A57FPLoadBalancing.
These are needed so this pass will produce output when
e.g. -print-after-all is used.
Phabricator Review: http://reviews.llvm.org/D7264
Patch by Geoff Berry <gberry@codeaurora.org>!
llvm-svn: 227506
Rui Ueyama [Thu, 29 Jan 2015 22:39:43 +0000 (22:39 +0000)]
Add an assert to check atom ordinal.
No two atoms are allowed to have the same file and atom ordinals.
If there's such atoms, there's a bug in the reader.
llvm-svn: 227504
Reid Kleckner [Thu, 29 Jan 2015 22:33:00 +0000 (22:33 +0000)]
Update comments to use unreachable instead of llvm.trap, as implemented now
win64: Call __chkstk through a register with the large code model
Fixes half of PR18582. True dynamic allocas will still have a
CALL64pcrel32 which will fail.
Reviewers: majnemer
Differential Revision: http://reviews.llvm.org/D7267
llvm-svn: 227503
Reid Kleckner [Thu, 29 Jan 2015 22:32:26 +0000 (22:32 +0000)]
Update comments to use unreachable instead of llvm.trap, as implemented now
llvm-svn: 227502
Rui Ueyama [Thu, 29 Jan 2015 22:18:28 +0000 (22:18 +0000)]
ELF: Remove dead code.
_runLayoutPass is always true. No way to set a new value to the
member variable.
llvm-svn: 227501
Rui Ueyama [Thu, 29 Jan 2015 22:12:50 +0000 (22:12 +0000)]
PECOFF: Do not use LayoutPass and instead use simpler one.
The LayoutPass is one of the slowest pass. This change is to skip
that pass. This change not only improve performance but also improve
maintainability of the code because the LayoutPass is pretty complex.
Previously we used the LayoutPass to sort all atoms in a specific way,
and reorder them again for PE/COFF in GroupedSectionPass.
I spent time on improving and fixing bugs in the LayoutPass (e.g.
r193029), but the pass is still hard to understand and hard to use.
It's better not to depend on that if we don't need. For PE/COFF, we
just wanted to sort atoms in the same order as the file order in the
command line.
The feature we used in the LayoutPass is now simplified to
compareByPosition function in OrderPass.cpp. The function is just 5
lines.
This patch changes the order of final output because it changes the
sort order a bit. The output is still correct, though.
llvm-svn: 227500
James Molloy [Thu, 29 Jan 2015 21:52:03 +0000 (21:52 +0000)]
[LoopReroll] Alter the data structures used during reroll validation.
The validation algorithm used an incremental approach, building each
iteration's data structures temporarily, validating them, then
adding them to a global set.
This does not scale well to having multiple sets of Root nodes, as the
set of instructions used in each iteration is the union over all
the root nodes. Therefore, refactor the logic to create a single, simple
container to which later logic then refers. This makes it simpler
control-flow wise to make the creation of the container more complex with
the addition of multiple root sets.
llvm-svn: 227499
Colin LeMahieu [Thu, 29 Jan 2015 21:47:15 +0000 (21:47 +0000)]
[Hexagon] Organizing tests and adding a few missing jump instruction encodings.
llvm-svn: 227498
Alexey Samsonov [Thu, 29 Jan 2015 21:32:34 +0000 (21:32 +0000)]
[CMake] Get rid of TARGET_64_BIT_CFLAGS: explicitly list required flags for each architecture.
llvm-svn: 227496
Colin LeMahieu [Thu, 29 Jan 2015 21:30:22 +0000 (21:30 +0000)]
[Hexagon] Adding missing instruction encodings and tests.
llvm-svn: 227495
Colin LeMahieu [Thu, 29 Jan 2015 21:09:30 +0000 (21:09 +0000)]
[Hexagon] Adding alu vector instructions
llvm-svn: 227493
Sanjay Patel [Thu, 29 Jan 2015 20:51:49 +0000 (20:51 +0000)]
[GVN] don't propagate equality comparisons of FP zero (PR22376)
In http://reviews.llvm.org/D6911, we allowed GVN to propagate FP equalities
to allow some simple value range optimizations. But that introduced a bug
when comparing to -0.0 or 0.0: these compare equal even though they are not
bitwise identical.
This patch disallows propagating zero constants in equality comparisons.
Fixes: http://llvm.org/bugs/show_bug.cgi?id=22376
Differential Revision: http://reviews.llvm.org/D7257
llvm-svn: 227491
Aaron Ballman [Thu, 29 Jan 2015 20:48:34 +0000 (20:48 +0000)]
All signal handlers are required to have C language linkage in C++. This does not fix all signal handlers, but does fix the most recent one.
llvm-svn: 227490
David Blaikie [Thu, 29 Jan 2015 20:25:46 +0000 (20:25 +0000)]
Add missing test from r227488
llvm-svn: 227489
David Blaikie [Thu, 29 Jan 2015 20:23:47 +0000 (20:23 +0000)]
Matching ARM change for r227481: DebugInfo: Teach Fast ISel to respect the debug location of comparisons in jumps.
llvm-svn: 227488
David Blaikie [Thu, 29 Jan 2015 20:21:24 +0000 (20:21 +0000)]
Refactor test to be reused across architectures
llvm-svn: 227487
David Blaikie [Thu, 29 Jan 2015 20:17:15 +0000 (20:17 +0000)]
Remove erroneous REQUIRES: object-emission for asm test.
llvm-svn: 227486
David Blaikie [Thu, 29 Jan 2015 19:40:02 +0000 (19:40 +0000)]
Missing test case for r227481
llvm-svn: 227485
Matt Arsenault [Thu, 29 Jan 2015 19:34:32 +0000 (19:34 +0000)]
R600/SI: Implement enableAggressiveFMAFusion
Add tests for the various combines. This should
always be at least cycle neutral on all subtargets for f64,
and faster on some. For f32 we should prefer selecting
v_mad_f32 over v_fma_f32.
llvm-svn: 227484
Matt Arsenault [Thu, 29 Jan 2015 19:34:25 +0000 (19:34 +0000)]
R600/SI: Add subtarget feature for if f32 fma is fast
llvm-svn: 227483
Matt Arsenault [Thu, 29 Jan 2015 19:34:18 +0000 (19:34 +0000)]
R600/SI: Fix tonga's basic scheduling model
llvm-svn: 227482
David Blaikie [Thu, 29 Jan 2015 19:09:18 +0000 (19:09 +0000)]
DebugInfo: Teach Fast ISel to respect the debug location of comparisons in jumps
The use of the DbgLoc in FastISel is probably something we should fix.
It's prone to leaking the wrong location into instructions - we should
have a clear chain of custody from the debug location of an IR
Instruction to that of a MachineInstr to avoid such leakage.
llvm-svn: 227481
Ulrich Weigand [Thu, 29 Jan 2015 19:08:51 +0000 (19:08 +0000)]
[PowerPC] Work around TLS linker bug
Work around a bug in GNU ld (and gold) linker versions up to 2.25
that may mis-optimize code generated by this version of clang/LLVM
to access general-dynamic or local-dynamic TLS variables.
Bug is fixed here:
https://sourceware.org/ml/binutils/2015-01/msg00318.html
llvm-svn: 227480
Zachary Turner [Thu, 29 Jan 2015 18:44:14 +0000 (18:44 +0000)]
Disable compilation of llvm-pdbdump for versions of MSVC < 2013.
Certain aspects of llvm-pdbdump require language support only present in
MSVC 2013 and higher. Since this is strictly a utility, and since we hope
to drop support for MSVC 2012 soon, don't build this unless MSVC 2013 or
higher.
llvm-svn: 227479
Kostya Serebryany [Thu, 29 Jan 2015 18:13:36 +0000 (18:13 +0000)]
[fuzzer] fix warning in a test
llvm-svn: 227478
Rafael Espindola [Thu, 29 Jan 2015 17:33:21 +0000 (17:33 +0000)]
Compute the ELF SectionKind from the flags.
Any code creating an MCSectionELF knows ELF and already provides the flags.
SectionKind is an abstraction used by common code that uses a plain
MCSection.
Use the flags to compute the SectionKind. This removes a lot of
guessing and boilerplate from the MCSectionELF construction.
llvm-svn: 227476