llvm-mirror/lib/VMCore
Nick Lewycky 8bdae4db80 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.

llvm-svn: 61019
2008-12-15 01:34:58 +00:00
..
AsmWriter.cpp Have PseudoSourceValue override Value::dump, so that it works 2008-12-03 21:37:21 +00:00
Attributes.cpp Introducing nocapture, a parameter attribute for pointers to indicate that the 2008-12-15 01:34:58 +00:00
AutoUpgrade.cpp
BasicBlock.cpp fix grammar, thanks Duncan! 2008-12-11 11:44:49 +00:00
CMakeLists.txt CMake: Turned some libraries into partially linked objects. Corrected 2008-10-22 02:51:53 +00:00
ConstantFold.cpp Added support for the following definition of shufflevector 2008-11-10 04:46:22 +00:00
ConstantFold.h
Constants.cpp Make ConstantAggregateZero::get return a ConstantAggregateZero*, 2008-12-08 07:10:54 +00:00
Core.cpp Add C bindings for extractvalue and insertvalue. Patch by Frits van Bommel! 2008-11-03 22:55:43 +00:00
DebugInfoBuilder.cpp
Dominators.cpp
Function.cpp
Globals.cpp
InlineAsm.cpp Keep track of *which* input constraint matches an output 2008-10-17 16:47:46 +00:00
Instruction.cpp improve const correctness. 2008-11-27 08:39:18 +00:00
Instructions.cpp add a long-overdue AllocaInst::isStaticAlloca method. 2008-11-26 02:54:17 +00:00
IntrinsicInst.cpp Unbreak DbgStopPointInst::getFileName(). 2008-10-11 06:40:56 +00:00
LeakDetector.cpp
Makefile
Mangler.cpp
Module.cpp Add comments to function. 2008-11-05 23:42:27 +00:00
ModuleProvider.cpp
Pass.cpp
PassManager.cpp Fix a use of an invalid iterator when -debug-pass=Details is used. 2008-11-06 21:57:17 +00:00
PrintModulePass.cpp Move Print*Pass to use raw_ostream. 2008-10-22 03:25:22 +00:00
SymbolTableListTraitsImpl.h
Type.cpp Reverting back 58505. Will commit it once I have the bc reader/writer/docs 2008-11-01 10:57:12 +00:00
TypeSymbolTable.cpp
Use.cpp Introduce a typing refinenement on tagged data 2008-10-16 15:33:02 +00:00
Value.cpp These messages should always be emitted when NDEBUG is unset, not when 2008-12-13 18:37:58 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp Duncan pointed out that the Extended case in getTypeForMVT could 2008-11-04 16:19:44 +00:00
Verifier.cpp The PreVerifier pass preserves everything. In practice, this 2008-12-01 03:58:38 +00:00