llvm-6502/include/llvm
Tim Northover 44697f3fc1 X86 CodeGenPrep: sink shufflevectors before shifts
On x86, shifting a vector by a scalar is significantly cheaper than shifting a
vector by another fully general vector. Unfortunately, because SelectionDAG
operates on just one basic block at a time, the shufflevector instruction that
reveals whether the right-hand side of a shift *is* really a scalar is often
not visible to CodeGen when it's needed.

This adds another handler to CodeGenPrepare, to sink any useful shufflevector
instructions down to the basic block where they're used, predicated on a target
hook (since on other architectures, doing so will often just introduce extra
real work).

rdar://problem/16063505

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201655 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-19 10:02:43 +00:00
..
ADT SCCIterator: Merge MinVisitNumStack and VisitStack 2014-02-13 18:26:15 +00:00
Analysis Fix a typo in a comment. 2014-02-19 03:20:46 +00:00
AsmParser Move the LLVM IR asm writer header files into the IR directory, as they 2014-01-07 12:34:26 +00:00
Bitcode Make parseBitcodeFile return an ErrorOr<Module *>. 2014-01-15 01:08:23 +00:00
CodeGen Fix PR18743. 2014-02-18 22:24:57 +00:00
Config Fix configure to find arc4random via header files. 2014-02-05 05:04:36 +00:00
DebugInfo llvm-dwarfdump: type unit dwo support 2014-01-09 05:08:24 +00:00
ExecutionEngine Rename some member variables from TD to DL. 2014-02-18 15:33:12 +00:00
IR Fix PR18743. 2014-02-18 22:24:57 +00:00
IRReader
LineEditor Introduce line editor library. 2014-01-31 23:46:14 +00:00
LTO LTO API: add lto_module_create_from_memory_with_path. 2014-02-10 23:26:14 +00:00
MC Re-commit: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call 2014-02-13 14:44:26 +00:00
Object llvm-objdump/COFF: Print load configuration table. 2014-02-19 03:53:11 +00:00
Option
Support Try to revive buildbots after r201620 2014-02-19 08:30:55 +00:00
TableGen Typo fix. 2014-01-24 23:40:08 +00:00
Target X86 CodeGenPrep: sink shufflevectors before shifts 2014-02-19 10:02:43 +00:00
Transforms Rename some member variables from TD to DL. 2014-02-18 15:33:12 +00:00
AutoUpgrade.h Debug Info: drop debug info via upgrading path if version number does not match. 2013-12-02 21:29:56 +00:00
CMakeLists.txt The llvm_headers_do_not_build project needs to be excluded from the default build, otherwise it gets built (at least in Visual Studio 2013). 2014-01-28 16:07:10 +00:00
DebugInfo.h Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
DIBuilder.h typo 2014-01-18 02:12:10 +00:00
GVMaterializer.h
InitializePasses.h Revert "Revert "Add Constant Hoisting Pass" (r200034)" 2014-01-25 02:02:55 +00:00
InstVisitor.h
LinkAllIR.h [cleanup] Move the Dominators.h and Verifier.h headers into the IR 2014-01-13 09:26:24 +00:00
LinkAllPasses.h Revert "Revert "Add Constant Hoisting Pass" (r200034)" 2014-01-25 02:02:55 +00:00
Linker.h
Pass.h Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
PassAnalysisSupport.h
PassManager.h
PassRegistry.h Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
PassSupport.h [opt][PassInfo] Allow opt to run passes that need target machine. 2014-01-16 21:44:34 +00:00