1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/include/llvm
Adam Nemet 2d24bce667 [LoopAccesses] Allow analysis to complete in the presence of uniform stores
Both run-time pointer checking and the dependence analysis are capable
of dealing with uniform addresses. I.e. it's really just an orthogonal
property of the loop that the analysis computes.

Run-time pointer checking will only try to reason about SCEVAddRec
pointers or else gives up. If the uniform pointer turns out the be a
SCEVAddRec in an outer loop, the run-time checks generated will be
correct (start and end bounds would be equal).

In case of the dependence analysis, we work again with SCEVs. When
compared against a loop-dependent address of the same underlying object,
the difference of the two SCEVs won't be constant. This will result in
returning an Unknown dependence for the pair.

When compared against another uniform access, the difference would be
constant and we should return the right type of dependence
(forward/backward/etc).

The changes also adds support to query this property of the loop and
modify the vectorizer to use this.

Patch by Ashutosh Nema!

llvm-svn: 234361
2015-04-07 21:46:16 +00:00
..
ADT [ADT] Increment epoch from DenseMap::swap. 2015-04-02 04:58:12 +00:00
Analysis [LoopAccesses] Allow analysis to complete in the presence of uniform stores 2015-04-07 21:46:16 +00:00
AsmParser Pass a MemoryBufferRef when we can avoid taking ownership. 2014-08-26 21:49:01 +00:00
Bitcode Purge unused includes throughout libSupport. 2015-03-23 18:07:13 +00:00
CodeGen move helper function closer to use; NFC 2015-04-07 19:13:06 +00:00
Config [ADT][CMake][AutoConf] Fail-fast iterators for DenseMap 2015-03-26 19:25:01 +00:00
DebugInfo DWARFDebugRangeList: make the list of entries available to clients. 2015-03-13 23:30:07 +00:00
ExecutionEngine [Orc] Add support classes for inspecting and running C++ static ctor/dtors, and 2015-04-02 04:34:45 +00:00
IR DebugInfo: Remove constructors for DIRef<> 2015-04-07 18:41:54 +00:00
IRReader Pass a MemoryBufferRef when we can avoid taking ownership. 2014-08-26 21:49:01 +00:00
LineEditor
Linker Remember to move a type to the correct set when setting the body. 2015-03-06 00:50:21 +00:00
LTO libLTO, llvm-lto, gold: Introduce flag for controlling optimization level. 2015-03-19 22:01:00 +00:00
MC Use support::endian. NFC. 2015-04-07 21:22:05 +00:00
Object [llvm-readobj] add support for macho universal binary. 2015-03-24 20:26:55 +00:00
Option Make getLastArgNoClaim work for up to 4 arguments. 2015-03-20 23:32:58 +00:00
Passes [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00
ProfileData InstrProf: Teach llvm-cov to handle universal binaries when given -arch 2015-03-11 02:30:51 +00:00
Support Add boolean to PrintStackTraceOnErrorSignal to disable crash reporting. 2015-04-07 20:43:23 +00:00
TableGen Remove StringRef->std::string->StringRef conversions. 2015-03-17 21:33:38 +00:00
Target Fix formatting and coding style. 2015-04-04 03:53:25 +00:00
Transforms Move checkInterfaceFunction to ModuleUtils 2015-04-06 21:09:08 +00:00
CMakeLists.txt Remove llvm_headers_do_not_build for the benefit of XCode and Visual Studio users. 2014-08-14 00:51:47 +00:00
InitializePasses.h Reapply r233175 and r233183: float2int. 2015-03-27 10:36:57 +00:00
LinkAllIR.h
LinkAllPasses.h Reapply r233175 and r233183: float2int. 2015-03-27 10:36:57 +00:00
module.modulemap [modules] Mark Analysis/TargetLibraryInfo.def as a textual header. 2015-03-06 23:39:54 +00:00
module.modulemap.build
Pass.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
PassAnalysisSupport.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
PassInfo.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
PassRegistry.h Revert r231276 (including r231277): Add a lock() function in PassRegistry to speed up multi-thread synchronization. 2015-03-05 17:53:00 +00:00
PassSupport.h Defining a new API for debug options that doesn't rely on static global cl::opts. 2014-10-15 21:54:35 +00:00