mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-30 16:17:05 +00:00 
			
		
		
		
	more notes to self.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128902 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		| @@ -238,6 +238,7 @@ looking forward to the C++ committee finalizing the C++'0x standard.--> | ||||
|  | ||||
|  | ||||
| <!--=========================================================================--> | ||||
| <!-- | ||||
| <div class="doc_subsection"> | ||||
| <a name="klee">KLEE: A Symbolic Execution Virtual Machine</a> | ||||
| </div> | ||||
| @@ -252,8 +253,7 @@ be used to verify some algorithms. | ||||
| </p> | ||||
|  | ||||
| <p>UPDATE!</p> | ||||
|  | ||||
| </div> | ||||
| </div>--> | ||||
|  | ||||
|  | ||||
| <!-- *********************************************************************** --> | ||||
| @@ -299,7 +299,9 @@ in this section. | ||||
| <ul> | ||||
| <li><pre> | ||||
|   last release for llvm-gcc | ||||
| TBAA | ||||
| TBAA: On by default in clang.  Disable it with -fno-strict-aliasing. | ||||
|   Could be more aggressive for structs. | ||||
|    | ||||
| Triple::normalize is new, llvm triples are always stored in normalized form internally. | ||||
|  | ||||
| Triple x86_64--mingw64 is obsoleted. Use x86_64--mingw32 instead. | ||||
| @@ -315,7 +317,8 @@ Much better debug info generated, particularly in optimized code situations. | ||||
|  | ||||
| ARM Fast ISel | ||||
|  | ||||
| ELF MC support | ||||
| ELF MC support: on by default in clang.  There are still known missing features | ||||
|   for human written assembly. | ||||
|  | ||||
| X86: Reimplemented all of MMX to introduce a new LLVM IR x86_mmx type.  Now | ||||
|   random types like <2 x i32> are not iseld to mmx without emms. | ||||
| @@ -340,16 +343,57 @@ PointerTracking has been removed from mainline, moved to ClamAV. | ||||
|    | ||||
| EarlyCSE pass. | ||||
|  | ||||
| - DIBuilder provides simpler interface for front ends like Clang to encode debug info in LLVM IR. | ||||
|   - This interface hides implementation details (e.g. DIDerivedType, existence of compile unit etc..) that any front end should not know about. | ||||
|   For example, | ||||
|   Ty = DebugFactory.CreateDerivedType(DW_TAG_volatile_type, | ||||
|   findRegion(TYPE_CONTEXT(type)), | ||||
|   StringRef(), | ||||
|   getOrCreateFile(main_input_filename), | ||||
|   0 /*line no*/, | ||||
|   NodeSizeInBits(type), | ||||
|   NodeAlignInBits(type), | ||||
|   0 /*offset */, | ||||
|   0 /* flags */, | ||||
|   MainTy); | ||||
|   can be replaced by | ||||
|   DbgTy = DBuilder.createQualifiedType(DW_TAG_volatile_type, MainTy);  | ||||
|    | ||||
| PPC: Switched to MCInstPrinter, and MCCodeEmitter.  Ready to implement support | ||||
|   for directly writing out mach-o object files, but noone seems interested. | ||||
|  | ||||
| ARM: Improved code generation for Cortex-A8 and Cortex-A9 CPUs. | ||||
|    | ||||
| Scheduler now models operand latency and pipeline forwarding. | ||||
|    | ||||
| Major regalloc rewrite, not on by default for 2.9. | ||||
| error_code + libsystem + PathV2 changes | ||||
|  | ||||
| new macho-dump tool | ||||
|  | ||||
| Major regalloc rewrite, not on by default for 2.9 and not advised to use it. | ||||
|  * New basic register allocator that can be used as a safe fallback when | ||||
|    debugging. Enable with -regalloc=basic. | ||||
|  * New infrastructure for live range splitting. SplitKit can break a live | ||||
|    interval into smaller pieces while preserving SSA form, and SpillPlacement | ||||
|    can help find the best split points. This is a work in progress so the API | ||||
|    is changing quickly. | ||||
|  * The inline spiller has learned to clean up after live range splitting. It | ||||
|    can hoist spills out of loops, and it can eliminate redundant spills. | ||||
|    Rematerialization works with live range splitting. | ||||
|  * New greedy register allocator using live range splitting. This will be the | ||||
|    default register allocator in the next LLVM release, but it is not turned on | ||||
|    by default in 2.9. | ||||
|  | ||||
| ARM: __builtin_prefetch turns into prefetch instructions. | ||||
|    | ||||
| MC assembler support for 3dNow! and 3DNowA instructions. | ||||
|    | ||||
| tblgen support for assembler aliases: <a  | ||||
|   href="CodeGenerator.html#na_instparsing">MnemonicAlias and InstAlias</a> | ||||
|    | ||||
| LoopIndexSplit pass was removed, unmaintained. | ||||
|    | ||||
| include/llvm/System merged into include/llvm/Support. | ||||
|   | ||||
| Win32 PE-COFF support in the MC assembler has made a lot of progress in the 2.9 | ||||
|   timeframe, but is still not generally useful.  Please see  | ||||
| @@ -361,10 +405,19 @@ New <a href="WritingAnLLVMPass.html#RegionPass">RegionPass</a> infrastructure | ||||
| MicroBlaze: major updates for aggressive delay slot filler, MC-based assembly | ||||
|    printing, assembly instruction parsing, ELF .o file emission, and MC | ||||
|    instruction disassembler. | ||||
|    | ||||
| Countless ARM microoptimizations. | ||||
|  | ||||
| Speedups to various mid-level passes: | ||||
|   GVN is much faster on functions with deep dominator trees / lots of BBs. | ||||
|   DomTree and DominatorFrontier are much faster to compute. | ||||
|    | ||||
|    | ||||
| new 'hotpatch' attribute: LangRef.html#fnattrs | ||||
| </pre></li> | ||||
| </ul> | ||||
|    | ||||
| Still todo: [101025-110228] | ||||
| Still todo: [101129-110228] | ||||
|  | ||||
| </div> | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user