1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/include/llvm
David Green 99f589780c [CPG][ARM] Optimize towards branch on zero in codegenprepare
This adds a simple fold into codegenprepare that converts comparison of
branches towards comparison with zero if possible. For example:
  %c = icmp ult %x, 8
  br %c, bla, blb
  %tc = lshr %x, 3
becomes
  %tc = lshr %x, 3
  %c = icmp eq %tc, 0
  br %c, bla, blb

As a first order approximation, this can reduce the number of
instructions needed to perform the branch as the shift is (often) needed
anyway. At the moment this does not effect very much, as llvm tends to
prefer the opposite form. But it can protect against regressions from
commits like rG9423f78240a2.

Simple cases of Add and Sub are added along with Shift, equally as the
comparison to zero can often be folded with cpsr flags.

Differential Revision: https://reviews.llvm.org/D101778
2021-05-16 17:54:06 +01:00
..
ADT [ADT] Add llvm::remove_cvref and llvm::remove_cvref_t 2021-04-30 18:22:38 +00:00
Analysis [CFG] Move reachable from entry checks into basic block variant 2021-05-15 15:42:02 +02:00
AsmParser IR+AArch64: add a "swiftasync" argument attribute. 2021-05-14 11:43:58 +01:00
BinaryFormat [AMDGPU] Add gfx1034 target 2021-05-13 14:25:18 -04:00
Bitcode IR+AArch64: add a "swiftasync" argument attribute. 2021-05-14 11:43:58 +01:00
Bitstream
CodeGen [CPG][ARM] Optimize towards branch on zero in codegenprepare 2021-05-16 17:54:06 +01:00
Config [CMake][AIX] Adjust plugin library extension used on AIX 2021-03-04 11:23:06 -05:00
DebugInfo NFC. Refactored DIPrinter for support embedded source. 2021-05-15 23:01:12 +04:00
Demangle [Demangle][Rust] Parse inherent implementations 2021-05-15 23:52:25 +02:00
DWARFLinker [dsymutil] Add flag to force a static variable to keep its enclosing function 2021-04-28 11:33:04 -07:00
ExecutionEngine [ORC] Add support for adding LinkGraphs directly to ObjectLinkingLayer. 2021-05-13 21:44:13 -07:00
FileCheck [FileCheck] Fix numeric error propagation 2021-03-17 19:25:41 -04:00
Frontend Fix -Wdocumentation warnings. NFCI. 2021-05-11 09:51:49 +01:00
FuzzMutate
InterfaceStub [docs] Fix doxygen comments wrongly attached to the llvm namespace 2021-04-07 01:20:18 +02:00
IR [IR] Add BasicBlock::isEntryBlock() (NFC) 2021-05-15 12:41:58 +02:00
IRReader
LineEditor
Linker
LTO [LTO] Caching.h - remove unused <string> include. NFCI. 2021-04-22 14:07:12 +01:00
MC [MC] Add the ability to pass MCRegisterInfo to dump_pretty. 2021-05-14 18:21:57 -07:00
MCA [MCA][RegisterFile] Refactor the move elimination logic to address PR50258. 2021-05-08 18:10:35 +01:00
Object [LLD] Implement /guard:[no]ehcont 2021-04-14 15:06:49 +08:00
ObjectYAML [WebAssembly] Rename WasmLimits::Initial to ::Minimum. NFC. 2021-03-24 09:10:11 +01:00
Option [clang][cli][docs] Clarify marshalling infrastructure documentation 2021-05-04 15:16:32 +02:00
Passes [PassManager] add helper function to hold set of vector passes (2nd try) 2021-05-10 14:43:00 -04:00
ProfileData [Coverage] Support overriding compilation directory 2021-05-11 15:26:45 -07:00
Remarks
Support [AMDGPU] Add gfx1034 target 2021-05-13 14:25:18 -04:00
TableGen [TableGen] Fix two bugs in 'defm' when complex 'assert' is involved. 2021-04-30 11:31:06 -04:00
Target Support GCC's -fstack-usage flag 2021-05-15 10:22:49 -07:00
Testing/Support Bump googletest to 1.10.0 2021-05-14 19:16:31 +02:00
TextAPI [llvm][TextAPI] add mapping from OS string to Platform 2021-05-06 16:25:56 -07:00
ToolDrivers
Transforms [LoopVectorizationLegality] NFC: Mark some interfaces as 'const' 2021-05-14 11:53:54 +01:00
WindowsManifest
WindowsResource
XRay
CMakeLists.txt
InitializePasses.h Recommit "[VP,Integer,#2] ExpandVectorPredication pass" 2021-05-04 11:47:52 +02:00
LinkAllIR.h
LinkAllPasses.h Recommit "[VP,Integer,#2] ExpandVectorPredication pass" 2021-05-04 11:47:52 +02:00
module.extern.modulemap
module.install.modulemap
module.modulemap Revert "[build][modules] Fix ObjCARCUtil.h modularization" 2021-03-09 09:36:47 -08:00
module.modulemap.build
Pass.h
PassAnalysisSupport.h
PassInfo.h
PassRegistry.h
PassSupport.h