1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/test
Sanjay Patel 8d957f05fa [ARM] add overrides for isCheapToSpeculateCttz() and isCheapToSpeculateCtlz()
ARM V6T2 has instructions for efficient count-leading/trailing-zeros, so this should be
considered a cheap operation (and therefore fair game for speculation) for any ARM V6T2
implementation.

The net result of allowing this speculation for the regression tests in this patch is
that we get this code:

ctlz:               
  clz  r0, r0
  bx  lr
cttz:              
  rbit  r0, r0
  clz  r0, r0
  bx  lr

Instead of:

ctlz:    
  cmp  r0, #0
  moveq  r0, #32
  clzne  r0, r0
  bx  lr
cttz:     
  cmp   r0, #0
  moveq  r0, #32
  rbitne  r0, r0
  clzne  r0, r0
  bx  lr

This will help solve a general speculation/despeculation problem noted in PR24818:
https://llvm.org/bugs/show_bug.cgi?id=24818

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

llvm-svn: 252639
2015-11-10 19:24:31 +00:00
..
Analysis Revert "Strip metadata when speculatively hoisting instructions" 2015-11-10 18:01:16 +00:00
Assembler DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
Bindings Add a new attribute: norecurse 2015-11-06 10:32:53 +00:00
Bitcode Add 'notail' marker for call instructions. 2015-11-06 23:55:38 +00:00
BugPoint [bugpoint] Add a named metadata (+their operands) reducer 2015-11-06 00:12:50 +00:00
CodeGen [X86] Do not try to custom-lower sitofp/fptosi in soft-float mode 2015-11-10 17:37:49 +00:00
DebugInfo DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
Examples
ExecutionEngine [RuntimeDyld] Add support for R_X86_64_PC8 relocation. 2015-11-08 19:34:17 +00:00
Feature [FunctionAttrs] Add handling for operand bundles 2015-11-07 01:56:00 +00:00
FileCheck
Instrumentation DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
Integer
JitListener DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
LibDriver
Linker [ThinLTO] WeakAny fixes/cleanup 2015-11-10 18:20:11 +00:00
LTO llvm-lto: trivial spelling changes to distinguish custom diagnostic handler and 2015-11-10 18:52:48 +00:00
MC AVX512 : Implemented encoding and DAG lowering for VMOVHPS/PD and VMOVLPS/PD instructions. 2015-11-10 07:09:07 +00:00
Object Tests: be slightly more specific to avoid conflict with path. 2015-10-26 13:40:03 +00:00
Other
SymbolRewriter
TableGen
tools Fix llvm-nm(1) printing of llvm-bitcode files for -format darwin to match darwin’s nm(1). 2015-11-10 00:31:08 +00:00
Transforms [ARM] add overrides for isCheapToSpeculateCttz() and isCheapToSpeculateCtlz() 2015-11-10 19:24:31 +00:00
Unit
Verifier DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
YAMLParser
.clang-format
CMakeLists.txt [CMake] check-llvm requires llvm-pdbdump. 2015-10-15 13:22:38 +00:00
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh