1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/docs
Kostya Serebryany b37a1263e1 Extend Attributes to 64 bits
Problem: LLVM needs more function attributes than currently available (32 bits).
One such proposed attribute is "address_safety", which shows that a function is being checked for address safety (by AddressSanitizer, SAFECode, etc).

Solution:
- extend the Attributes from 32 bits to 64-bits
- wrap the object into a class so that unsigned is never erroneously used instead
- change "unsigned" to "Attributes" throughout the code, including one place in clang.
- the class has no "operator uint64 ()", but it has "uint64_t Raw() " to support packing/unpacking.
- the class has "safe operator bool()" to support the common idiom:  if (Attributes attr = getAttrs()) useAttrs(attr);
- The CTOR from uint64_t is marked explicit, so I had to add a few explicit CTOR calls
- Add the new attribute "address_safety". Doing it in the same commit to check that attributes beyond first 32 bits actually work.
- Some of the functions from the Attribute namespace are worth moving inside the class, but I'd prefer to have it as a separate commit.

Tested:
"make check" on Linux (32-bit and 64-bit) and Mac (10.6)
built/run spec CPU 2006 on Linux with clang -O2.


This change will break clang build in lib/CodeGen/CGCall.cpp.
The following patch will fix it.

llvm-svn: 148553
2012-01-20 17:56:17 +00:00
..
CommandGuide Fix dead link 2012-01-07 04:11:27 +00:00
HistoricalNotes
img
tutorial Install the PNG file as well. PR4780. 2011-10-16 08:24:30 +00:00
AliasAnalysis.html docs/*.html: Appease W3C Checker to add "charset=utf-8". 2011-10-31 11:21:59 +00:00
Atomics.html s/SequeuentiallyConsistent/SequentiallyConsistent/g 2011-09-11 15:50:05 +00:00
BitCodeFormat.html
BranchWeightMetadata.html docs/*.html: Appease W3C Checker to add "charset=utf-8". 2011-10-31 11:21:59 +00:00
Bugpoint.html docs/*.html: Appease W3C Checker to add "charset=utf-8". 2011-10-31 11:21:59 +00:00
CFEBuildInstrs.html
CMake.html There are already problems with building LLVM under VS2005, and it's 2011-11-16 19:52:13 +00:00
CodeGenerator.html Add a new kind of MachineOperand: MO_RegisterMask. 2012-01-16 19:22:00 +00:00
CodingStandards.html docs/*.html: Appease W3C Checker to add "charset=utf-8". 2011-10-31 11:21:59 +00:00
CommandLine.html
CompilerWriterInfo.html Remove the Alpha backend. 2011-10-27 22:56:32 +00:00
DebuggingJITedCode.html docs/*.html: Appease W3C Checker to add "charset=utf-8". 2011-10-31 11:21:59 +00:00
DeveloperPolicy.html Jakob is the code owner of register allocation and TableGen. 2011-10-07 17:26:38 +00:00
doxygen.cfg.in Reapply r141657. 2011-10-31 23:46:50 +00:00
doxygen.css
doxygen.footer Happy new year 2012! 2012-01-01 08:16:56 +00:00
doxygen.header
doxygen.intro
ExceptionHandling.html Remove dead llvm.eh.sjlj.dispatchsetup intrinsic. 2011-11-28 19:23:13 +00:00
ExtendedIntegerResults.txt
ExtendingLLVM.html docs/*.html: Appease W3C Checker to add "charset=utf-8". 2011-10-31 11:21:59 +00:00
FAQ.html More llvmc bits. Spotted by Benjamin on IRC. 2011-09-20 00:42:28 +00:00
GarbageCollection.html docs: Update HTML markup(s). 2011-08-12 06:17:17 +00:00
GCCFEBuildInstrs.html
GetElementPtr.html docs/*.html: Fix markups. 2011-10-31 13:04:26 +00:00
GettingStarted.html There are already problems with building LLVM under VS2005, and it's 2011-11-16 19:52:13 +00:00
GettingStartedVS.html There are already problems with building LLVM under VS2005, and it's 2011-11-16 19:52:13 +00:00
GoldPlugin.html Recommend the -flto flag instead of -use-gold-plugin, and update 2011-11-05 04:17:28 +00:00
HowToAddABuilder.html Cleaned text, fixed HTML. 2011-11-03 05:57:26 +00:00
HowToReleaseLLVM.html docs/*.html: Appease W3C Checker to add "charset=utf-8". 2011-10-31 11:21:59 +00:00
HowToSubmitABug.html docs/*.html: Appease W3C Checker to add "charset=utf-8". 2011-10-31 11:21:59 +00:00
index.html Fix typo. 2012-01-19 21:50:08 +00:00
LangRef.html Extend Attributes to 64 bits 2012-01-20 17:56:17 +00:00
Lexicon.html test commit (verifyiing commit access) 2012-01-05 08:18:41 +00:00
LinkTimeOptimization.html docs/*.html: Appease W3C Checker to add "charset=utf-8". 2011-10-31 11:21:59 +00:00
llvm.css docs/llvm.css: Introduce <blockquote><pre>. It may be used as blockquoted "doc_code". 2011-08-12 06:17:11 +00:00
LLVMBuild.html llvm-build: Switch to using the common subdirectory list instead of 2011-12-12 22:45:59 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
Makefile
MakefileGuide.html
Packaging.html docs/*.html: Appease W3C Checker to add "charset=utf-8". 2011-10-31 11:21:59 +00:00
Passes.html The default alias analysis is -noaa; update the docs to reflect that. Patch by Michael Ilseman. 2011-10-27 22:32:13 +00:00
ProgrammersManual.html add ImmutableSet/Map dox, patch by Caitlin Sadowski! 2011-11-15 22:40:14 +00:00
Projects.html docs/*.html: Appease W3C Checker to add "charset=utf-8". 2011-10-31 11:21:59 +00:00
re_format.7
ReleaseNotes.html Add a new kind of MachineOperand: MO_RegisterMask. 2012-01-16 19:22:00 +00:00
SegmentedStacks.html Release notes for segmented stacks. 2011-11-29 19:08:23 +00:00
SourceLevelDebugging.html Fix typo. 2012-01-03 18:38:37 +00:00
SystemLibrary.html docs/*.html: Appease W3C Checker to add "charset=utf-8". 2011-10-31 11:21:59 +00:00
TableGenFundamentals.html docs/*.html: Appease W3C Checker to add "charset=utf-8". 2011-10-31 11:21:59 +00:00
TestingGuide.html Update the docs for some of the test-suite configure changes and 2011-11-29 19:40:56 +00:00
WritingAnLLVMBackend.html
WritingAnLLVMPass.html Revert r146041 et al. The FunctionPass doesn't take an address but the ID. 2011-12-09 19:11:02 +00:00