mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-31 08:16:47 +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"> | <div class="doc_subsection"> | ||||||
| <a name="klee">KLEE: A Symbolic Execution Virtual Machine</a> | <a name="klee">KLEE: A Symbolic Execution Virtual Machine</a> | ||||||
| </div> | </div> | ||||||
| @@ -252,8 +253,7 @@ be used to verify some algorithms. | |||||||
| </p> | </p> | ||||||
|  |  | ||||||
| <p>UPDATE!</p> | <p>UPDATE!</p> | ||||||
|  | </div>--> | ||||||
| </div> |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- *********************************************************************** --> | <!-- *********************************************************************** --> | ||||||
| @@ -299,7 +299,9 @@ in this section. | |||||||
| <ul> | <ul> | ||||||
| <li><pre> | <li><pre> | ||||||
|   last release for llvm-gcc |   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::normalize is new, llvm triples are always stored in normalized form internally. | ||||||
|  |  | ||||||
| Triple x86_64--mingw64 is obsoleted. Use x86_64--mingw32 instead. | 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 | 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 | 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. |   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. | 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. | ARM: Improved code generation for Cortex-A8 and Cortex-A9 CPUs. | ||||||
|    |    | ||||||
| Scheduler now models operand latency and pipeline forwarding. | 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. | 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. | 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 | 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  |   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 | MicroBlaze: major updates for aggressive delay slot filler, MC-based assembly | ||||||
|    printing, assembly instruction parsing, ELF .o file emission, and MC |    printing, assembly instruction parsing, ELF .o file emission, and MC | ||||||
|    instruction disassembler. |    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> | </pre></li> | ||||||
| </ul> | </ul> | ||||||
|    |    | ||||||
| Still todo: [101025-110228] | Still todo: [101129-110228] | ||||||
|  |  | ||||||
| </div> | </div> | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user