mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-14 13:07:31 +00:00
674fdc9a28
This makes both logical sense (see below) and increases the number of functions marked readnone/readonly by about 1-2% in practice. The number of functions marked nocapture goes up by about 5-10%. The reason it makes sense is shown by the following example: if you run -functionattrs -inline on it, then no attributes are assigned. But if you instead run -inline -functionattrs then @f is marked readnone because the simplifications produced by the inliner eliminate the store. @x = external global i32 define void @w(i1 %b) { br i1 %b, label %write, label %return write: store i32 1, i32 *@x br label %return return: ret void } define void @f() { call void @w(i1 0) ret void } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85893 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
AlignOf.h | ||
Allocator.h | ||
CallSite.h | ||
Casting.h | ||
CFG.h | ||
CommandLine.h | ||
Compiler.h | ||
ConstantFolder.h | ||
ConstantRange.h | ||
DataFlow.h | ||
Debug.h | ||
DebugLoc.h | ||
DOTGraphTraits.h | ||
Dwarf.h | ||
DynamicLinker.h | ||
ELF.h | ||
ErrorHandling.h | ||
FileUtilities.h | ||
Format.h | ||
FormattedStream.h | ||
GetElementPtrTypeIterator.h | ||
GraphWriter.h | ||
InstIterator.h | ||
InstVisitor.h | ||
IRBuilder.h | ||
IRReader.h | ||
LeakDetector.h | ||
ManagedStatic.h | ||
Mangler.h | ||
MathExtras.h | ||
MemoryBuffer.h | ||
MemoryObject.h | ||
MutexGuard.h | ||
NoFolder.h | ||
OutputBuffer.h | ||
PassNameParser.h | ||
PatternMatch.h | ||
PluginLoader.h | ||
PointerLikeTypeTraits.h | ||
PredIteratorCache.h | ||
PrettyStackTrace.h | ||
raw_os_ostream.h | ||
raw_ostream.h | ||
Recycler.h | ||
RecyclingAllocator.h | ||
Regex.h | ||
Registry.h | ||
RegistryParser.h | ||
SlowOperationInformer.h | ||
SourceMgr.h | ||
StableBasicBlockNumbering.h | ||
StandardPasses.h | ||
StringPool.h | ||
SystemUtils.h | ||
TargetFolder.h | ||
Timer.h | ||
type_traits.h | ||
TypeBuilder.h | ||
ValueHandle.h |