llvm-6502/include/llvm
Richard Sandiford 66589dcc8f Keep TBAA info when rewriting SelectionDAG loads and stores
Most SelectionDAG code drops the TBAA info when creating a new form of a
load and store (e.g. during legalization, or when converting a plain
load to an extending one).  This patch tries to catch all cases where
the TBAA information can legitimately be carried over.

The patch adds alternative forms of getLoad() and getExtLoad() that take
a MachineMemOperand instead of individual fields.  (The corresponding
getTruncStore() already exists.)  The idea is to use the MachineMemOperand
forms when all fields are carried over (size, pointer info, isVolatile,
isNonTemporal, alignment and TBAA info).  If some adjustment is being
made, e.g. to narrow the load, then we still pass the individual fields
but also pass the TBAA info.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193517 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-28 11:17:59 +00:00
..
ADT Undefine NetBSD, it may have been defined by an earlier include of 2013-09-25 17:49:57 +00:00
Analysis Quick look-up for block in loop. 2013-10-26 03:08:02 +00:00
Assembly Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +00:00
Bitcode Add function attribute 'optnone'. 2013-08-23 11:53:55 +00:00
CodeGen Keep TBAA info when rewriting SelectionDAG loads and stores 2013-10-28 11:17:59 +00:00
Config Revert "Revert "Windows: Add support for unicode command lines"" 2013-10-07 01:00:07 +00:00
DebugInfo [DebugInfo] Remove unneeded struct member and hide struct definition. No functionality change. 2013-10-18 07:13:32 +00:00
ExecutionEngine Optimizing MCJIT module state tracking 2013-10-24 00:19:14 +00:00
IR AVX-512: PMIN/PMAX intrinsics and patterns 2013-10-27 08:18:37 +00:00
IRReader Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
LTO Optimize linkonce_odr unnamed_addr functions during LTO. 2013-10-03 18:29:09 +00:00
MC ARM: allow .thumb_func to be separated from symbol definition 2013-10-25 12:49:50 +00:00
Object Add missing #include's to cctype when using isdigit/alpha/etc. 2013-10-12 00:55:57 +00:00
Option Option parsing: support case-insensitive option matching. 2013-08-28 20:04:31 +00:00
Support Change MemoryBuffer::getFile to take a Twine. 2013-10-25 19:06:52 +00:00
TableGen Speling fixes. 2013-10-22 15:18:03 +00:00
Target SelectionDAG: Pass along the original argument/element type in ISD::InputArg 2013-10-23 00:44:24 +00:00
Transforms Optimize more linkonce_odr values during LTO. 2013-10-21 17:14:55 +00:00
AutoUpgrade.h AutoUpgrade: upgrade from scalar TBAA format to struct-path aware TBAA format. 2013-09-28 00:22:27 +00:00
CMakeLists.txt Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
DebugInfo.h Reformat. 2013-10-15 21:22:12 +00:00
DIBuilder.h fix two typos. 2013-10-21 23:55:19 +00:00
GVMaterializer.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
InitializePasses.h Remove the now unused strong phi elimination pass. 2013-10-14 16:39:04 +00:00
InstVisitor.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LinkAllIR.h Rename LinkAllVMCore.h to LinkAllIR.h since VMCore directory was renamed to IR. 2013-01-10 21:55:02 +00:00
LinkAllPasses.h Remove the very substantial, largely unmaintained legacy PGO 2013-10-02 15:42:23 +00:00
Linker.h Add a 'deleteModule' method to the Linker class. 2013-10-16 08:59:57 +00:00
Pass.h moves doInitialization and doFinalization to the Pass class and removes some unreachable code in MachineModuleInfo 2012-12-03 21:56:57 +00:00
PassAnalysisSupport.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
PassManager.h Revert "Encapsulate PassManager debug flags to avoid static init and cxa_exit." 2013-09-19 06:02:43 +00:00
PassManagers.h Use a DenseMap instead of a std::map for AnalysisID -> Pass* maps. This reduces the pass-manager overhead from FPPassManager::runOnFunction() by about 10%. 2013-02-26 01:31:59 +00:00
PassRegistry.h This patch breaks up Wrap.h so that it does not have to include all of 2013-05-01 20:59:00 +00:00
PassSupport.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00