llvm-6502/docs
Nick Lewycky e642658480 Introducing nocapture, a parameter attribute for pointers to indicate that the
callee will not introduce any new aliases of that pointer.

The attributes had all bits allocated already, so I decided to collapse
alignment. Alignment was previously stored as a 16-bit integer from bits 16 to
32 of the attribute, but it was required to be a power of 2. Now it's stored in
log2 encoded form in five bits from 16 to 21. That gives us 11 more bits of
space.

You may have already noticed that you only need four bits to encode a 16-bit
power of two, so why five bits? Because the AsmParser accepted 32-bit
alignments, even though we couldn't store them (they were silently discarded).
Now we can store them in memory, but not in the bitcode.

The bitcode format was already storing these as 64-bit VBR integers. So, the
bitcode format stays the same, keeping the alignment values stored as 16 bit
raw values. There's some hideous code in the reader and writer that deals with
this, waiting to be ripped out the moment we run out of bits again and have to
replace the parameter attributes table encoding.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61019 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-15 01:34:58 +00:00
..
CommandGuide
HistoricalNotes
img
tutorial
AliasAnalysis.html Introducing nocapture, a parameter attribute for pointers to indicate that the 2008-12-15 01:34:58 +00:00
BitCodeFormat.html
Bugpoint.html
CFEBuildInstrs.html
CMake.html
CodeGenerator.html
CodingStandards.html
CommandLine.html
CompilerDriver.html
CompilerDriverTutorial.html
CompilerWriterInfo.html
DeveloperPolicy.html
doxygen.cfg.in
doxygen.css
doxygen.footer
doxygen.header
doxygen.intro
ExceptionHandling.html
ExtendingLLVM.html
FAQ.html
GarbageCollection.html
GCCFEBuildInstrs.html
GetElementPtr.html
GettingStarted.html
GettingStartedVS.html
HowToReleaseLLVM.html
HowToSubmitABug.html
index.html
LangRef.html Introducing nocapture, a parameter attribute for pointers to indicate that the 2008-12-15 01:34:58 +00:00
Lexicon.html Fixed HTML validator warning. 2008-12-14 08:01:51 +00:00
LinkTimeOptimization.html
llvm.css
Makefile
MakefileGuide.html
Passes.html
ProgrammersManual.html
Projects.html
ReleaseNotes.html
SourceLevelDebugging.html
SystemLibrary.html
TableGenFundamentals.html
TestingGuide.html
UsingLibraries.html
WritingAnLLVMBackend.html
WritingAnLLVMPass.html