llvm-6502/include/llvm
Sanjay Patel 3e05b40fd0 Refactor reciprocal square root estimate into target-independent function; NFC.
This is purely a plumbing patch. No functional changes intended.

The ultimate goal is to allow targets other than PowerPC (certainly X86 and Aarch64) to turn this:

z = y / sqrt(x)

into:

z = y * rsqrte(x)

using whatever HW magic they can use. See http://llvm.org/bugs/show_bug.cgi?id=20900 .

The first step is to add a target hook for RSQRTE, take the already target-independent code selfishly hoarded by PPC, and put it into DAGCombiner.

Next steps:

    The code in DAGCombiner::BuildRSQRTE() should be refactored further; tests that exercise that logic need to be added.
    Logic in PPCTargetLowering::BuildRSQRTE() should be hoisted into DAGCombiner.
    X86 and AArch64 overrides for TargetLowering.BuildRSQRTE() should be added.

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218219 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-21 15:19:15 +00:00
..
ADT Add hsail and amdil64 to Triple 2014-09-19 19:52:11 +00:00
Analysis Add a new pass FunctionTargetTransformInfo. This pass serves as a 2014-09-18 00:34:14 +00:00
AsmParser Pass a MemoryBufferRef when we can avoid taking ownership. 2014-08-26 21:49:01 +00:00
Bitcode Spell out the template args for compilers having issues with the injected class 2014-09-15 16:13:33 +00:00
CodeGen Optimize sext/zext insertion algorithm in back-end. 2014-09-19 05:30:35 +00:00
Config
DebugInfo Fix build faliure introduced by r217129. 2014-09-04 06:35:09 +00:00
ExecutionEngine [MCJIT] Start Stringref-izing the ExecutionEngine interface. 2014-09-15 17:50:22 +00:00
IR DIBuilder: Delete dead code, NFC 2014-09-19 23:17:58 +00:00
IRReader Pass a MemoryBufferRef when we can avoid taking ownership. 2014-08-26 21:49:01 +00:00
LineEditor
Linker
LTO unique_ptrify LTOCodeGenerator::NativeObjectFile 2014-09-02 18:21:06 +00:00
MC Add and update reset() and doInitialization() methods to MC* and passes. 2014-09-17 09:25:36 +00:00
Object LTO: introduce object file-based on-disk module format. 2014-09-18 21:28:49 +00:00
Option Add an overload of getLastArgNoClaim taking two OptSpecifiers. 2014-09-12 19:42:53 +00:00
ProfileData llvm-cov: Allow creating CoverageMappings from filenames 2014-09-20 17:19:52 +00:00
Support Fixup for r217830. Don't do left shifts on negative values 2014-09-17 18:23:07 +00:00
TableGen [TableGen] Fully resolve class-instance values before defs in multiclasses 2014-09-16 17:14:13 +00:00
Target Refactor reciprocal square root estimate into target-independent function; NFC. 2014-09-21 15:19:15 +00:00
Transforms Reapply fix in r217988 (reverted in r217989) and remove the alternative fix committed in r217987. 2014-09-17 22:27:36 +00:00
CMakeLists.txt
InitializePasses.h Add a new pass FunctionTargetTransformInfo. This pass serves as a 2014-09-18 00:34:14 +00:00
LinkAllIR.h
LinkAllPasses.h Added missing blank 2014-09-10 17:52:27 +00:00
module.modulemap Nuke MCAnalysis. 2014-09-02 22:32:20 +00:00
module.modulemap.build
Pass.h
PassAnalysisSupport.h
PassInfo.h
PassManager.h
PassRegistry.h
PassSupport.h