platform/upstream/llvm.git
8 years agofix documentation comments; NFC
Sanjay Patel [Sat, 9 Jul 2016 18:52:07 +0000 (18:52 +0000)]
fix documentation comments; NFC

llvm-svn: 274981

8 years ago[lanai] Treat .t as optional in assembly parser for RR operands and add predicate...
Jacques Pienaar [Sat, 9 Jul 2016 18:26:04 +0000 (18:26 +0000)]
[lanai] Treat .t as optional in assembly parser for RR operands and add predicate operand to ShiftRR

llvm-svn: 274980

8 years agoAMDGPU: Move R600 only pieces into R600 classes
Matt Arsenault [Sat, 9 Jul 2016 18:11:15 +0000 (18:11 +0000)]
AMDGPU: Move R600 only pieces into R600 classes

llvm-svn: 274979

8 years agoRevert "AMDGPU: Remove unused control flow intrinsic"
Matt Arsenault [Sat, 9 Jul 2016 17:18:39 +0000 (17:18 +0000)]
Revert "AMDGPU: Remove unused control flow intrinsic"

llvm-svn: 274978

8 years agoclang-format: [JS] Sort imports case insensitive.
Martin Probst [Sat, 9 Jul 2016 15:11:18 +0000 (15:11 +0000)]
clang-format: [JS] Sort imports case insensitive.

Summary: ASCII case sorting does not help finding imported symbols quickly, and it is common to have e.g. class Foo and function fooFactory exported/imported from the same file.

Reviewers: djasper

Subscribers: klimek, cfe-commits

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

llvm-svn: 274977

8 years agoclang-format: [JS] support trailing commas in imports.
Martin Probst [Sat, 9 Jul 2016 15:09:22 +0000 (15:09 +0000)]
clang-format: [JS] support trailing commas in imports.

Reviewers: djasper

Subscribers: cfe-commits, klimek

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

llvm-svn: 274976

8 years ago[analyzer] Older version of GCC 4.7 crash on lambdas in default arguments.
Benjamin Kramer [Sat, 9 Jul 2016 12:16:58 +0000 (12:16 +0000)]
[analyzer] Older version of GCC 4.7 crash on lambdas in default arguments.

llvm-svn: 274975

8 years ago[analyzer] Rewrite manual erase loop using remove_if.
Benjamin Kramer [Sat, 9 Jul 2016 11:16:56 +0000 (11:16 +0000)]
[analyzer] Rewrite manual erase loop using remove_if.

No functionality change intended.

llvm-svn: 274974

8 years ago[ArgPromote] Use function_ref and for-range loops.
Benjamin Kramer [Sat, 9 Jul 2016 10:36:36 +0000 (10:36 +0000)]
[ArgPromote] Use function_ref and for-range loops.

No functionality change intended.

llvm-svn: 274973

8 years agoAMDGPU: Merge / reorganize tests
Matt Arsenault [Sat, 9 Jul 2016 08:02:28 +0000 (08:02 +0000)]
AMDGPU: Merge / reorganize tests

llvm-svn: 274972

8 years agoAMDGPU: Simplify tests with per function subtargets
Matt Arsenault [Sat, 9 Jul 2016 07:55:03 +0000 (07:55 +0000)]
AMDGPU: Simplify tests with per function subtargets

llvm-svn: 274971

8 years agoAMDGPU: Prune AMDGPUAsmParser in libdeps.
NAKAMURA Takumi [Sat, 9 Jul 2016 07:54:27 +0000 (07:54 +0000)]
AMDGPU: Prune AMDGPUAsmParser in libdeps.

llvm-svn: 274970

8 years agoAMDGPU: Fix fdiv lowering when f32 denormals supported
Matt Arsenault [Sat, 9 Jul 2016 07:48:11 +0000 (07:48 +0000)]
AMDGPU: Fix fdiv lowering when f32 denormals supported

Also fix test not actually using function labels.

llvm-svn: 274969

8 years ago[X86] Use __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi to implement...
Craig Topper [Sat, 9 Jul 2016 05:30:41 +0000 (05:30 +0000)]
[X86] Use __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi to implement pextrw/pinsertw MMX intrinsics instead of trying to use native IR.

Without this we end up generating code that doesn't use mmx registers and probably doesn't work well with other mmx intrinsics.

llvm-svn: 274968

8 years ago[X86] Remove sse41 extract intrinsics. They are not used by clang and are not impleme...
Craig Topper [Sat, 9 Jul 2016 04:38:30 +0000 (04:38 +0000)]
[X86] Remove sse41 extract intrinsics. They are not used by clang and are not implemented by the x86 backend.

llvm-svn: 274967

8 years ago[X86] Remove and autoupgrade 512-bit non-temporal store intrinsics.
Craig Topper [Sat, 9 Jul 2016 04:38:27 +0000 (04:38 +0000)]
[X86] Remove and autoupgrade 512-bit non-temporal store intrinsics.

llvm-svn: 274966

8 years ago[X86] Uncomment the _mm_extract_ps test and add checks.
Craig Topper [Sat, 9 Jul 2016 04:38:17 +0000 (04:38 +0000)]
[X86] Uncomment the _mm_extract_ps test and add checks.

llvm-svn: 274965

8 years ago[esan] Add __esan_report for mid-run data
Derek Bruening [Sat, 9 Jul 2016 04:13:25 +0000 (04:13 +0000)]
[esan] Add __esan_report for mid-run data

Summary:
Adds a new public interface routine __esan_report() which can be used to
request profiling results prior to abnormal termination (e.g., for a server
process killed by its parent where the normal exit does not allow for
normal result reporting).

Implements this for the working-set tool.  The cache frag tool is left
unimplemented as it requires missing iteration capabilities.

Adds a new test.

Reviewers: aizatsky

Subscribers: vitalybuka, zhaoqin, kcc, eugenis, llvm-commits, kubabrecka

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

llvm-svn: 274964

8 years ago[LoopSimplify] Remove a comment which is unlikely to age well.
Davide Italiano [Sat, 9 Jul 2016 03:27:24 +0000 (03:27 +0000)]
[LoopSimplify] Remove a comment which is unlikely to age well.

Chandler pointed out in his review but I forgot to remove before
committing, my bad.

llvm-svn: 274963

8 years ago[PM] Port CrossDSOCFI to the new pass manager.
Davide Italiano [Sat, 9 Jul 2016 03:25:35 +0000 (03:25 +0000)]
[PM] Port CrossDSOCFI to the new pass manager.

llvm-svn: 274962

8 years ago[CFLAA] Make a constant variable `const`. NFC.
George Burgess IV [Sat, 9 Jul 2016 03:21:25 +0000 (03:21 +0000)]
[CFLAA] Make a constant variable `const`. NFC.

`const` was dropped by r274958, and the lack of `const` makes GCC6
(correctly) complain.

llvm-svn: 274961

8 years ago[PM] Fix a think-o. mv {Scalar,Vectorize}/SLPVectorize.h
Sean Silva [Sat, 9 Jul 2016 03:11:29 +0000 (03:11 +0000)]
[PM] Fix a think-o. mv {Scalar,Vectorize}/SLPVectorize.h

llvm-svn: 274960

8 years ago[PM] Port LoopSimplify to the new pass manager.
Davide Italiano [Sat, 9 Jul 2016 03:03:01 +0000 (03:03 +0000)]
[PM] Port LoopSimplify to the new pass manager.

While here move simplifyLoop() function to the new header, as
suggested by Chandler in the review.

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

llvm-svn: 274959

8 years ago[CFLAA] Move the graph builder out from CFLSteens. NFC.
George Burgess IV [Sat, 9 Jul 2016 02:54:42 +0000 (02:54 +0000)]
[CFLAA] Move the graph builder out from CFLSteens. NFC.

Patch by Jia Chen.

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

llvm-svn: 274958

8 years ago[CFLAA] Simplify CFLGraphBuilder. NFC.
George Burgess IV [Sat, 9 Jul 2016 02:48:56 +0000 (02:48 +0000)]
[CFLAA] Simplify CFLGraphBuilder. NFC.

This removes a few fields from the graph builder by making us compute
things (that we'd always compute anyway) more eagerly.

Patch by Jia Chen.

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

llvm-svn: 274957

8 years agoCodeGen: tweak CFString section for COFF, ELF
Saleem Abdulrasool [Sat, 9 Jul 2016 01:59:51 +0000 (01:59 +0000)]
CodeGen: tweak CFString section for COFF, ELF

Place the structure data into `cfstring`.  This both isolates the structures to
permit coalescing in the future (by the linker) as well as ensures that it
doesnt get marked as read-only data.  The structures themselves are not
read-only, only the string contents.

llvm-svn: 274956

8 years agoLivePhysRegs: addLiveOuts() can skip addPristines() in ret block
Matthias Braun [Sat, 9 Jul 2016 01:31:36 +0000 (01:31 +0000)]
LivePhysRegs: addLiveOuts() can skip addPristines() in ret block

Drive-by improvement: We would 1) add CSRs, 2) remove callee saved CSRs
and 3) add all CSRs again for the return block.  Just adding CSRs once
obviously gives the same results.

llvm-svn: 274955

8 years agoAMDGPU: Improve offset folding for register indexing
Matt Arsenault [Sat, 9 Jul 2016 01:13:56 +0000 (01:13 +0000)]
AMDGPU: Improve offset folding for register indexing

llvm-svn: 274954

8 years agoAMDGPU: Simplify isSchedulingBoundary
Matt Arsenault [Sat, 9 Jul 2016 01:13:51 +0000 (01:13 +0000)]
AMDGPU: Simplify isSchedulingBoundary

llvm-svn: 274953

8 years agoVirtRegMap: Replace some identity copies with KILL instructions.
Matthias Braun [Sat, 9 Jul 2016 00:19:07 +0000 (00:19 +0000)]
VirtRegMap: Replace some identity copies with KILL instructions.

An identity COPY like this:
   %AL = COPY %AL, %EAX<imp-def>
has no semantic effect, but encodes liveness information: Further users
of %EAX only depend on this instruction even though it does not define
the full register.

Replace the COPY with a KILL instruction in those cases to maintain this
liveness information. (This reverts a small part of r238588 but this
time adds a comment explaining why a KILL instruction is useful).

llvm-svn: 274952

8 years agoAsmPrinter: Fix emitKill() not flush()ing a raw_string_ostream
Matthias Braun [Sat, 9 Jul 2016 00:18:43 +0000 (00:18 +0000)]
AsmPrinter: Fix emitKill() not flush()ing a raw_string_ostream

llvm-svn: 274951

8 years agoAdded REQUIRES to TestingGuide documentation
Piotr Padlewski [Fri, 8 Jul 2016 23:47:29 +0000 (23:47 +0000)]
Added REQUIRES to TestingGuide  documentation

Reviewers: alexfh, wolfgangp, rengolin

Subscribers: llvm-commits

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

llvm-svn: 274949

8 years agoWhen calling "settings set target.source-map <old-path> <new-path>", make sure that...
Greg Clayton [Fri, 8 Jul 2016 23:06:38 +0000 (23:06 +0000)]
When calling "settings set target.source-map <old-path> <new-path>", make sure that <new-path> exists before accepting it as a remapping.

We had some clients that had added old source paths remappings to their .lldbinit files and they were causing trouble at a later date. This fix should help mitigate these issues.

<rdar://problem/26358860>

llvm-svn: 274948

8 years agoAdd 'thinlto_src_module' md with asserts or -enable-import-metadata
Piotr Padlewski [Fri, 8 Jul 2016 23:01:49 +0000 (23:01 +0000)]
Add 'thinlto_src_module' md with asserts or -enable-import-metadata

Summary:
This way the metadata will be only generated when asserts enabled,
or when -enable-import-metadata specified

FIXED missing colon on requires.

Reviewers: tejohnson, eraman, mehdi_amini

Subscribers: mehdi_amini, llvm-commits

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

llvm-svn: 274947

8 years agoRevert "Add 'thinlto_src_module' md with asserts or -enable-import-metadata"
Piotr Padlewski [Fri, 8 Jul 2016 22:55:48 +0000 (22:55 +0000)]
Revert "Add 'thinlto_src_module' md with asserts or -enable-import-metadata"

Reverting because of 17463
http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules/builds/17463

This reverts commit d20cb431bba2ba43b4c65a8556cff445bfefbb7c.

llvm-svn: 274946

8 years ago[lanai] Update test to use peephole-opt and not peephole-opts
Jacques Pienaar [Fri, 8 Jul 2016 22:28:29 +0000 (22:28 +0000)]
[lanai] Update test to use peephole-opt and not peephole-opts

llvm-svn: 274945

8 years agoRevert "Add runtime support for __cpu_model (__builtin_cpu_supports)"
Alina Sbirlea [Fri, 8 Jul 2016 22:22:43 +0000 (22:22 +0000)]
Revert "Add runtime support for __cpu_model (__builtin_cpu_supports)"

This reverts commit r274873 until additional fixes are resolved.

llvm-svn: 274944

8 years agoRevert "InstCombine rule to fold truncs whose value is available"
Anna Thomas [Fri, 8 Jul 2016 22:15:08 +0000 (22:15 +0000)]
Revert "InstCombine rule to fold truncs whose value is available"

This reverts commit r274853.
Caused failure in ppcBE build

llvm-svn: 274943

8 years agoLanai: Avoid implicit iterator conversions, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 22:11:30 +0000 (22:11 +0000)]
Lanai: Avoid implicit iterator conversions, NFC

Avoid implicit conversions from MachineInstrBundleIterator to
MachineInstr* in the Lanai backend.

llvm-svn: 274942

8 years ago[MC, COFF] Permit a variable to be redefined
David Majnemer [Fri, 8 Jul 2016 21:54:16 +0000 (21:54 +0000)]
[MC, COFF] Permit a variable to be redefined

Our assertions in WinCOFFStreamer had unexpected side effects resulting
in symbols getting unexpectedly marked as used.

This fixes PR28462.

llvm-svn: 274941

8 years ago[TTI] Expose TTI::getGEPCost and use it in SLSR and NaryReassociate.
Jingyue Wu [Fri, 8 Jul 2016 21:48:05 +0000 (21:48 +0000)]
[TTI] Expose TTI::getGEPCost and use it in SLSR and NaryReassociate.

NFC.

llvm-svn: 274940

8 years agoAMDGPU: Remove unused control flow intrinsic
Matt Arsenault [Fri, 8 Jul 2016 21:39:44 +0000 (21:39 +0000)]
AMDGPU: Remove unused control flow intrinsic

llvm-svn: 274939

8 years agoAdd 'thinlto_src_module' md with asserts or -enable-import-metadata
Piotr Padlewski [Fri, 8 Jul 2016 21:25:39 +0000 (21:25 +0000)]
Add 'thinlto_src_module' md with asserts or -enable-import-metadata

Summary:
This way the metadata will be only generated when asserts enabled,
or when -enable-import-metadata specified

Reviewers: tejohnson, eraman, mehdi_amini

Subscribers: mehdi_amini, llvm-commits

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

llvm-svn: 274938

8 years agoReapply r274829 with fix for FP vectors
Matt Arsenault [Fri, 8 Jul 2016 21:25:33 +0000 (21:25 +0000)]
Reapply r274829 with fix for FP vectors

llvm-svn: 274937

8 years ago[BFI] Minor cleanup. NFC
Adam Nemet [Fri, 8 Jul 2016 21:24:13 +0000 (21:24 +0000)]
[BFI] Minor cleanup. NFC

Use typedef Result in BlockFrequencyAnalysis::run.  Fix typo in comment.

llvm-svn: 274936

8 years ago[LAA] Port test to the new PM
Adam Nemet [Fri, 8 Jul 2016 21:24:06 +0000 (21:24 +0000)]
[LAA] Port test to the new PM

This is a follow-on to r274452.

The LAA with the new PM is a loop pass so we go from inner to outer loops.

Also using a CHECK-NOT didn't make much sense because we print something
in either case; whether an invariant is 'found' or 'not found'.

llvm-svn: 274935

8 years ago[PM] name the new PM LAA class LoopAccessAnalysis (LAA) /NFC
Xinliang David Li [Fri, 8 Jul 2016 21:21:44 +0000 (21:21 +0000)]
[PM] name the new PM LAA class LoopAccessAnalysis (LAA) /NFC

llvm-svn: 274934

8 years agoMSP430: Avoid implicit iterator conversions, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 21:19:46 +0000 (21:19 +0000)]
MSP430: Avoid implicit iterator conversions, NFC

Avoid implicit conversions from MachineInstrBundleIIterator to
MachineInstr* in the MSP430 backend by preferring MachineInstr& over
MachineInstr* when a pointer isn't nullable.

llvm-svn: 274933

8 years ago[InstCombine] don't form select from bitcasted logic ops if bitcasts have >1 use
Sanjay Patel [Fri, 8 Jul 2016 21:17:51 +0000 (21:17 +0000)]
[InstCombine] don't form select from bitcasted logic ops if bitcasts have >1 use

This isn't a sure thing (are 2 extra bitcasts less expensive than a logic op?),
but we'll try to err on the conservative side by going with the case that has
less IR instructions.

Note: This question came up in http://reviews.llvm.org/D22114 , but this part is
independent of that patch proposal, so I'm making this small change ahead of that
one.

See also:
http://reviews.llvm.org/rL274926

llvm-svn: 274932

8 years agoNVPTX: Avoid implicit iterator conversions, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 21:10:58 +0000 (21:10 +0000)]
NVPTX: Avoid implicit iterator conversions, NFC

Avoid implicit conversions from MachineInstrBundleIterator to
MachineInstr* in the NVPTX backend, mainly by preferring MachineInstr&
over MachineInstr* when a pointer isn't nullable and using range-based
for loops.

There was one piece of questionable code in
NVPTXInstrInfo::AnalyzeBranch, where a condition checked a pointer
converted from an iterator for nullptr.  Since this case is impossible
(moreover, the code above guarantees that the iterator is valid), I
removed the check when I changed the pointer to a reference.

Despite that case, there should be no functionality change here.

llvm-svn: 274931

8 years agoTeach -ast-print to print constexpr variables.
Vassil Vassilev [Fri, 8 Jul 2016 21:09:08 +0000 (21:09 +0000)]
Teach -ast-print to print constexpr variables.

Patch reviewed by Richard Smith (D22168).

llvm-svn: 274930

8 years agoadd another multi-use test for logic->select transform
Sanjay Patel [Fri, 8 Jul 2016 21:08:16 +0000 (21:08 +0000)]
add another multi-use test for logic->select transform

llvm-svn: 274929

8 years agoAllow dead insts to be kept in DeadRemat only when they are rematerializable.
Wei Mi [Fri, 8 Jul 2016 21:08:09 +0000 (21:08 +0000)]
Allow dead insts to be kept in DeadRemat only when they are rematerializable.

Because isReallyTriviallyReMaterializableGeneric puts many limits on
rematerializable instructions, this fix can prevent instructions with
tied virtual operands and instructions with virtual register uses from
being kept in DeadRemat, so as to workaround the live interval consistency
problem for the dummy instructions kept in DeadRemat.

But we still need to fix the live interval consistency problem. This patch
is just a short time relieve. PR28464 has been filed as a reminder.

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

llvm-svn: 274928

8 years agoRename LoopAccessAnalysis to LoopAccessLegacyAnalysis /NFC
Xinliang David Li [Fri, 8 Jul 2016 20:55:26 +0000 (20:55 +0000)]
Rename LoopAccessAnalysis to LoopAccessLegacyAnalysis /NFC

llvm-svn: 274927

8 years ago[InstCombine] don't form select from logic ops if it's unlikely that we'll eliminate...
Sanjay Patel [Fri, 8 Jul 2016 20:53:29 +0000 (20:53 +0000)]
[InstCombine] don't form select from logic ops if it's unlikely that we'll eliminate any ops

llvm-svn: 274926

8 years agoadjust test so it won't completely optimize away
Sanjay Patel [Fri, 8 Jul 2016 20:35:53 +0000 (20:35 +0000)]
adjust test so it won't completely optimize away

llvm-svn: 274925

8 years agoAArch64: Avoid implicit iterator conversions, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 20:29:42 +0000 (20:29 +0000)]
AArch64: Avoid implicit iterator conversions, NFC

Avoid implicit conversions from MachineInstrBundleInstr to MachineInstr*
in the AArch64 backend, mainly by preferring MachineInstr& over
MachineInstr* when a pointer isn't nullable.

llvm-svn: 274924

8 years ago[OpenCL] Add missing -cl-no-signed-zeros option into driver
Yaxun Liu [Fri, 8 Jul 2016 20:28:29 +0000 (20:28 +0000)]
[OpenCL] Add missing -cl-no-signed-zeros option into driver

Add OCL option -cl-no-signed-zeros to driver options.

Also added to opencl.cl testcases.

Patch by Aaron En Ye Shi.

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

llvm-svn: 274923

8 years agoadd tests for multi-use folding to select
Sanjay Patel [Fri, 8 Jul 2016 20:22:27 +0000 (20:22 +0000)]
add tests for multi-use folding to select

llvm-svn: 274922

8 years agoRemove duplicate inclusion /NFC
Xinliang David Li [Fri, 8 Jul 2016 20:21:32 +0000 (20:21 +0000)]
Remove duplicate inclusion /NFC

llvm-svn: 274921

8 years agoARM: Remove implicit iterator conversions, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 20:21:17 +0000 (20:21 +0000)]
ARM: Remove implicit iterator conversions, NFC

Remove remaining implicit conversions from MachineInstrBundleIterator to
MachineInstr* from the ARM backend.  In most cases, I made them less attractive
by preferring MachineInstr& or using a ranged-based for loop.

Once all the backends are fixed I'll make the operator explicit so that this
doesn't bitrot back.

llvm-svn: 274920

8 years agoTableGen: Update style in CodeGenIntrinsics. NFC
Justin Bogner [Fri, 8 Jul 2016 20:14:27 +0000 (20:14 +0000)]
TableGen: Update style in CodeGenIntrinsics. NFC

Ran clang-format to remove the namespace indentation, and stopped
repeating names in doc comments since I was updating every line
anyway.

llvm-svn: 274919

8 years agoRemove inline hints computation from SampleProfile.cpp
Dehao Chen [Fri, 8 Jul 2016 20:12:44 +0000 (20:12 +0000)]
Remove inline hints computation from SampleProfile.cpp

Summary: As we will move to use uniformed hotness check in inliner, we do not need inline hints in SampleProfile pass any more.

Reviewers: dnovillo, davidxl

Subscribers: eraman, llvm-commits

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

llvm-svn: 274918

8 years agoAttempt to fix buildbots.
Rui Ueyama [Fri, 8 Jul 2016 19:59:11 +0000 (19:59 +0000)]
Attempt to fix buildbots.

llvm-svn: 274917

8 years agoRevert r274829, it caused PR28472.
Nico Weber [Fri, 8 Jul 2016 19:52:19 +0000 (19:52 +0000)]
Revert r274829, it caused PR28472.

llvm-svn: 274916

8 years ago[X86] Regenerated bitreverse tests to demonstrate what is going on.
Simon Pilgrim [Fri, 8 Jul 2016 19:51:08 +0000 (19:51 +0000)]
[X86] Regenerated bitreverse tests to demonstrate what is going on.

llvm-svn: 274915

8 years ago[X86] Added bitreverse tests for non-legal types
Simon Pilgrim [Fri, 8 Jul 2016 19:48:33 +0000 (19:48 +0000)]
[X86] Added bitreverse tests for non-legal types

Requested on D21578

llvm-svn: 274914

8 years agoSparc: Avoid implicit iterator conversions, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 19:41:40 +0000 (19:41 +0000)]
Sparc: Avoid implicit iterator conversions, NFC

Remove the only implicit conversions from MachineInstrBundleIterator to
MachineInstr* in the Sparc backend.

llvm-svn: 274913

8 years agoWebAssembly: Avoid implicit iterator conversions, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 19:36:40 +0000 (19:36 +0000)]
WebAssembly: Avoid implicit iterator conversions, NFC

Avoid implicit conversions from MachineInstrBundleIterator to
MachineInstr* in the WebAssembly backend by preferring MachineInstr&
over MachineInstr*.

llvm-svn: 274912

8 years agoAsmPrinter: Avoid implicit iterator conversions in DbgValueHistoryCalculator, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 19:31:47 +0000 (19:31 +0000)]
AsmPrinter: Avoid implicit iterator conversions in DbgValueHistoryCalculator, NFC

llvm-svn: 274911

8 years ago[CrossDSOCFI] Change the pass so that it doesn't require doInitialization()
Davide Italiano [Fri, 8 Jul 2016 19:30:06 +0000 (19:30 +0000)]
[CrossDSOCFI] Change the pass so that it doesn't require doInitialization()

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

llvm-svn: 274910

8 years agofix use of uninitialized.
Rafael Espindola [Fri, 8 Jul 2016 19:28:55 +0000 (19:28 +0000)]
fix use of uninitialized.

llvm-svn: 274909

8 years ago[X86][AVX2] Add support for target shuffle combining to VPERMPD/VPERMQ
Simon Pilgrim [Fri, 8 Jul 2016 19:23:29 +0000 (19:23 +0000)]
[X86][AVX2] Add support for target shuffle combining to VPERMPD/VPERMQ

llvm-svn: 274908

8 years agoSelectionDAG: Avoid implicit iterator conversions in SelectionDAGBuilder, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 19:23:12 +0000 (19:23 +0000)]
SelectionDAG: Avoid implicit iterator conversions in SelectionDAGBuilder, NFC

llvm-svn: 274907

8 years agoAMDGPU: Remove implicit iterator conversions, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 19:16:05 +0000 (19:16 +0000)]
AMDGPU: Remove implicit iterator conversions, NFC

Remove remaining implicit conversions from MachineInstrBundleIterator to
MachineInstr* from the AMDGPU backend.  In most cases, I made them less
attractive by preferring MachineInstr& or using a ranged-based for loop.

Once all the backends are fixed I'll make the operator explicit so that
this doesn't bitrot back.

llvm-svn: 274906

8 years ago[SCCP] Fold constants as we build them whne visiting cast instructions.
Davide Italiano [Fri, 8 Jul 2016 19:13:40 +0000 (19:13 +0000)]
[SCCP] Fold constants as we build them whne visiting cast instructions.

This should be slightly more efficient and could avoid spurious overdefined
markings, as Eli pointed out.

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

llvm-svn: 274905

8 years agoSelectionDAG: Avoid implicit iterator conversions in SelectionDAGISel, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 19:11:40 +0000 (19:11 +0000)]
SelectionDAG: Avoid implicit iterator conversions in SelectionDAGISel, NFC

llvm-svn: 274904

8 years agoSelectionDAG: Avoid implicit iterator conversions in ScheduleDAGSDNodes, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 19:07:09 +0000 (19:07 +0000)]
SelectionDAG: Avoid implicit iterator conversions in ScheduleDAGSDNodes, NFC

llvm-svn: 274903

8 years agoAMDGPU: Make infinite loop clear, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 19:00:17 +0000 (19:00 +0000)]
AMDGPU: Make infinite loop clear, NFC

Change a while loop that was checking for nullptr on an
iterator-to-pointer conversion to an infinite for loop.  Now it's clear
that the condition doesn't terminate.

The only change in behaviour is if an invalid iterator (holding nullptr)
was passed into AMDGPUCFGStructurizer::reversePredicateSetter.  There
are only two callers, and they both dereference the iterator before
sending it in, so rather than adding an early return to avoid the loop
I've just asserted (using a static_cast, to avoid an implicit conversion
to pointer).

llvm-svn: 274902

8 years agoMake IsSyntheticChildrenGenerated() virtual so that dynamic and synthetic values...
Enrico Granata [Fri, 8 Jul 2016 18:39:36 +0000 (18:39 +0000)]
Make IsSyntheticChildrenGenerated() virtual so that dynamic and synthetic values can refer back to their parents

llvm-svn: 274901

8 years agoCOFF: remove unused function (touchFile)
Saleem Abdulrasool [Fri, 8 Jul 2016 18:36:56 +0000 (18:36 +0000)]
COFF: remove unused function (touchFile)

Remove some dead code.  NFC.

llvm-svn: 274900

8 years agoSelectionDAG: Avoid implicit iterator conversions in FastISel, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 18:36:41 +0000 (18:36 +0000)]
SelectionDAG: Avoid implicit iterator conversions in FastISel, NFC

llvm-svn: 274899

8 years agoTarget: Avoid getFirstTerminator() => pointer, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 18:26:20 +0000 (18:26 +0000)]
Target: Avoid getFirstTerminator() => pointer, NFC

Stop using an implicit conversion from the return of
MachineBasicBlock::getFirstTerminator to MachineInstr*.  In two cases,
directly dereference to a MachineInstr& since later code assumes it's
valid.  In a third case, change to an iterator since later code checks
against MachineBasicBlock::end.

Although the fix for the third case avoids undefined behaviour, I expect
this doesn't cause a functionality change in practice (since the basic
block already has a terminator).

llvm-svn: 274898

8 years agoFix flag name in comment in cuda-version-check.cu.
Justin Lebar [Fri, 8 Jul 2016 17:59:24 +0000 (17:59 +0000)]
Fix flag name in comment in cuda-version-check.cu.

llvm-svn: 274897

8 years agoFix memory leak.
Rui Ueyama [Fri, 8 Jul 2016 17:58:54 +0000 (17:58 +0000)]
Fix memory leak.

Symbol's dtors are not called because they are allocated using
BumpPtrAllocators. So, members of std::unique_ptr type are not
freed when symbols are deallocated.

This patch is to allocate Thunks using BumpPtrAllocators.

llvm-svn: 274896

8 years agoUse shell cat command as a workaround if ADB stat cannot lookup a file.
Oleksiy Vyalov [Fri, 8 Jul 2016 17:45:37 +0000 (17:45 +0000)]
Use shell cat command as a workaround if ADB stat cannot lookup a file.

http://reviews.llvm.org/D22081

llvm-svn: 274895

8 years agoImproving EPCC performance when linking with hwloc
Jonathan Peyton [Fri, 8 Jul 2016 17:43:21 +0000 (17:43 +0000)]
Improving EPCC performance when linking with hwloc

When linking with libhwloc, the ORDERED EPCC test slows down on big
machines (> 48 cores). Performance analysis showed that a cache thrash
was occurring and this padding helps alleviate the problem.

Also, inside the main spin-wait loop in kmp_wait_release.h, we can eliminate
the references to the global shared variables by instead creating a local
variable, oversubscribed and instead checking that.

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

llvm-svn: 274894

8 years agoCodeGen: Avoid iterator conversions in TwoAddressInstructionPass, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 17:43:08 +0000 (17:43 +0000)]
CodeGen: Avoid iterator conversions in TwoAddressInstructionPass, NFC

Mostly through preferring MachineInstr&, avoid implicit conversions from
iterator to pointer.

Although this may bitrot (since there are other uses blocking me from
removing the implicit operator), this removes the last of the implicit
conversions from MachineInstrBundleIterator to MachineInstr* in the
LLVMCodeGen build target.

llvm-svn: 274893

8 years agoCodeGen: Use MachineInstr& in StackSlotColoring, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 17:28:40 +0000 (17:28 +0000)]
CodeGen: Use MachineInstr& in StackSlotColoring, NFC

Avoid implicit iterator to pointer conversions.

llvm-svn: 274892

8 years ago[InstCombine] check for one-use before turning simple logic op into a select
Sanjay Patel [Fri, 8 Jul 2016 17:26:47 +0000 (17:26 +0000)]
[InstCombine] check for one-use before turning simple logic op into a select

llvm-svn: 274891

8 years agoIR: Set a TargetPrefix for nvvm intrinsics
Justin Bogner [Fri, 8 Jul 2016 17:25:18 +0000 (17:25 +0000)]
IR: Set a TargetPrefix for nvvm intrinsics

Since these are named nvvm_* rather than nvptx_*, we also need to
update getArchTypePrefix. It's a bit unusual for getArchTypePrefix not
to match the backend name, but I think this fits the intent of the
function in this case.

llvm-svn: 274890

8 years ago[SLPVectorizer][X86] Added fma vectorization tests
Simon Pilgrim [Fri, 8 Jul 2016 17:19:13 +0000 (17:19 +0000)]
[SLPVectorizer][X86] Added fma vectorization tests

llvm-svn: 274889

8 years agoCodeGen: Use MachineInstr& in RegisterScavenging, NFC
Duncan P. N. Exon Smith [Fri, 8 Jul 2016 17:16:57 +0000 (17:16 +0000)]
CodeGen: Use MachineInstr& in RegisterScavenging, NFC

Prefer MachineInstr& in order to avoid implicit conversions from
MachineInstrBundleIterator to MachineInstr*.

llvm-svn: 274888

8 years agoadd test to show multi-use output
Sanjay Patel [Fri, 8 Jul 2016 17:12:27 +0000 (17:12 +0000)]
add test to show multi-use output

llvm-svn: 274887

8 years agoAMDGPU: Minor adjustment to r274817
Matt Arsenault [Fri, 8 Jul 2016 17:06:48 +0000 (17:06 +0000)]
AMDGPU: Minor adjustment to r274817

The commit message is inaccurate, modifiesRegister
will check for partial defs of exec.

We currently don't ever emit partial defs of exec,
so it doesn't really matter.

llvm-svn: 274886

8 years agoCFGTests: Update libdeps.
NAKAMURA Takumi [Fri, 8 Jul 2016 17:06:27 +0000 (17:06 +0000)]
CFGTests: Update libdeps.

llvm-svn: 274885

8 years ago[X86][AVX] Added combine test that should simplify to insertps
Simon Pilgrim [Fri, 8 Jul 2016 17:01:42 +0000 (17:01 +0000)]
[X86][AVX] Added combine test that should simplify to insertps

llvm-svn: 274884

8 years ago[InstCombine] allow or(sext(A), B) --> A ? -1 : B transform for vectors
Sanjay Patel [Fri, 8 Jul 2016 17:01:15 +0000 (17:01 +0000)]
[InstCombine] allow or(sext(A), B) --> A ? -1 : B transform for vectors

llvm-svn: 274883

8 years agoFix typo in #ifdef; leave tests commented out b/c gcc 4.8 harks on them.
Marshall Clow [Fri, 8 Jul 2016 16:59:54 +0000 (16:59 +0000)]
Fix typo in #ifdef; leave tests commented out b/c gcc 4.8 harks on them.

llvm-svn: 274882

8 years agoTry to fix compilation error in DebugInfoPDBTests.
Zachary Turner [Fri, 8 Jul 2016 16:57:14 +0000 (16:57 +0000)]
Try to fix compilation error in DebugInfoPDBTests.

llvm-svn: 274881