The word 'independent' has no 'a'.
[oota-llvm.git] / docs / ChrisNotes.txt
index 832b3ce02ed6c6c62308a355fea6bf030931395c..6c214bdfc69b1c147e689fe7d21aecbf27a7a005 100644 (file)
@@ -1,52 +1,7 @@
-* Need to implement getelementptr, load, and store for indirection through
-  arrays and multidim arrays
-* BytecodeWriter should use a deque<unsigned char> instead of vector!!!
-* Eliminate the method signature from a call instruction.  It should look like
-  this: call int %func(int 2, int %reg118)
-* Indirect calls should use the icall instruction
 * Rewrite the llvm parser/lexer in http://www.antlr.org when time permits.
   They actually do C++.  Imagine that.
-* Need to implement constant propogation of cast instructions!
-* Fix DCE to elminate br <c>, %L1, %L1 so that it can optimize the main of
-  fib.ll better.  Currently I have to do this to get best results:
-     as < fib.ll | opt -inline -sccp -dce -sccp -dce |dis
-* Fix DCE to work better, so that SCCP can show it's true value.
-* Implement ADCE
-* Fix the const pool printer to print out constants in some sort of "sorted"
-  order.  Then enable TestOptimizer.sh to diff -sccp output.  Currently it 
-  doesn't work because the diff fails because of ordering of the constant 
-  pool. :(
-* Maybe ConstantPool objects should keep themselves sorted as things are 
-  inserted.
-* Enable DoConstantPoolMerging to do trivial DCE of constant values.
-* Should provide "castTerminator, castPHI, etc" functions in Instruction, and
-  similar functions in other classes, that effectively do dynamic casts.  This
-  would allow code like this:
-    if (I->isTerminator()) {
-      TerminatorInst *TI = (TerminatorInst*)I;
-      ...
-    }
-  to be written as:
-    if (TerminatorInst *TI = I->castTerminatorInst()) {
-       ...
-    }
-* Think about whether edge split SSA form would be useful to do.
-* Inlining should attempt to give block names the same name in the inlined 
-  method (using SymbolTable::getUniqueName)
-* The dropAllReferences code can be a noop when NDEBUG!!!
-* Finish xvcg output
 * pred/succ iterators on basic blocks don't handle switch statements correctly
-* Provide a pass that eliminates critical edges from the CFG
-* Provide a print pass to print out xvcg format files for vis
-* I need to provide an option to the bytecode loader to ignore memory 
-  dependance edges.  Instead, the VM would just treat memory operations 
-  (load, store, getfield, putfield, call) as pinned instructions.
-* I need to have a way to prevent taking the address of a constant pool
-  reference.  You should only be able to take the address of a variable.
-  Maybe taking the address of a constant copies it?  What about virtual 
-  function tables?  Maybe a const pointer would be better...
 * Need a way to attach bytecode block info at various levels of asm code.
-* Need to be able to inflate recursive types.  %x = { *%x }, %x = %x ()
 * Recognize and save comments in assembly and bytecode format
 * Encode line number table in bytecode (like #line), optional table
 
 
 * Implement switch to switch on a constant pool array of type: 
   [{ label, int }] or [label]   (lookup vs index switch)
-* Apparently bison has a %pure_parser option.  Maybe useful for Assembly/Parser
+* Apparently bison has a %pure_parser option.  Maybe useful for AsmParser
 
-* Implement a header file that can read either assembly or bytecode, implement 
-  a writer that can output either based on what is read with this reader..
 * Implement the following derived types:
-  * pointer                          int *
   * "packed format", like this:    [4 x sbyte]: Packed SIMD datatype
-* Maybe 'tailcall' also?
-* Include a method level bytecode block that defines a mapping between values 
-  and registers that defines a minimally register allocated code.  This can
-  make me finally address how to encode extensions in assembly.
 * Bytecode reader should use extensions that may or may not be linked into the
   application to read blocks.  Thus an easy way to ignore symbol table info
   would be to not link in that reader into the app.