All Classes
-
All Classes Interface Summary Class Summary Exception Summary Class Description AddressStoreStmt Associated with an AddressStoreStmt is a Subroutine whose address (offset in the instruction sequence) is to be stored.ArithExpr ArithExpr represents a binary arithmetic expression.ArrayLengthExpr ArrayLengthExpr represents the arraylength opcode which gets length of an array.ArrayRefExpr ArrayRefExpr represents an expression that references an element in an array.AscendVisitor AscendVisitor is the superclass of Type0Visitor and Type1Visitor, conveniently containing the common code.Assert Mechanism for making assertions about things in BLOAT.Assign Classes that implement Assign involve an assignment (definition).Attribute Attribute is an abstract class for an attribute defined for a method, field, or class.Benchmark This class is used to run a benchmark Java program with Perfmon running in the background.BenchmarkSecurityManager The BenchmarkSecurityManager allows us to execute a "main" method multiple times without the virtual machine exiting.BloatContext This abstract class is a central repository for all things that are necessary for a BLOATing sessions.BloatingClassLoader BloatingClassLoaderis a Java class loader that BLOATs a class before it is loader into a Java Virtual Machine.Block Block represents a basic block of code used in control flow graphs.CachingBloatContext Does a lot of the same stuff as PersistentBloatContext except that it manages the chaches of BLOAT objects.CallExpr CallExpr is a superclass of expressions that represent the invocation of a method.CallMethodExpr CallMethodExpr represents the invocation of an object's method.CallStaticExpr CallStaticExpr represents the invokestatic opcode which invokes a class (static) method.CastExpr CastExpr represents an expression that casts an object to a given type.Catch Catch stores information about a protected block and an exception handler in a method.CatchExpr CatchExpr represents an expression that catches an exception.CheckExpr CheckExpr is a superclass for classes representing a check on an expression.ClassEditor A ClassEditor provides finer-grain access to a class than a CLassInfo object does.ClassFile ClassFile basically represents a Java classfile as it is found on disk.ClassFileLoader ClassFileLoder provides an interface for loading classes from files.ClassFormatException ClassHierarchy ClassHierarchy maintains a graph of the subclass relationships of the classes loaded by the ClassInfoLoader.ClassInfo ClassInfo allows a class to be accessed and modified at a very low level.ClassInfoLoader ClassInfoLoader provides an interface for loading classes.Code Code is used to store the Code attribute of a method in a class file.CodeArray CodeArray converts an array of Instructions into an array of bytes suitable for saving to a MethodInfo with setCode.CodeGenerator CodeGenerator performs some final optimizations and is used (via a visitor) to generate bytecode for the contents of a control flow graph.CompactArrayInitializer CompactArrayInitializer optimizes the initialization of arrays by transforming the initialization code into a loop that loads the array elements from a string in the class's constant pool.ComponentVisitor ComponentVisitor is used to visit the strongly connected components (SSC) of a control flow graph.CondExpr CondExpr is a superclass for conditional expressions.Constant A Constant is used to represent an item in the constant pool of a class.ConstantExpr ConstantExpr represents a constant expression.ConstantPool ConstantPool models constants in the constant pool.ConstantValue The ConstantValue attribute stores an index into the constant pool that represents constant value.CounterDecorate DeadCodeElimination DeadCodeElimination performs SSA-based dead code elimination as described in [Cytron, et.DefExpr An expression in which a definition occurs.DefInformation DefInformation contains information about the definition of a local variableDescendVisitor DecsendVisitor is the superclass of a few private classes of Type0Visitor and Type1Visitor.DominanceFrontier DominanceFrontier is used to calculate the dominance frontier of each node in a control flow graph.DominatorTree DominatorTree finds the dominator tree of a FlowGraph.EditorContext An EditorContext supplies a means of loading and editing classes.EditorVisitor EditorVisitor "visits" the "nodes" in a class.EliminationInformation Exceptions Exceptions describes the types of exceptions that a method may throw.Expr Expr is the superclass for a number of other classes representing expressions in byte code.ExprPropagation Performs copy and constant propagation on the blocks in a control flow graph.ExprStmt ExprStmt is a statement consisting of an expression.Field Field models a field (member variable) in a class.FieldEditor FieldEditor provides a means to edit a field of a class.FieldExpr FieldExpr represents the getfield opcode which fetches a field from an object.FieldInfo FieldInfo grants access to a field's name and type (represented as indices into the constant pool), as well as its modifiers.FlowGraph FlowGraph constructs and represents a Control Flow Graph (CFG) used for analyzing a method.GenericAttribute The Java Virtual Machine Specification allows implementors to invent their own attributes.GotoStmt Represents an unconditional branch to a basic block.Graph Graph represents a graph of nodes with directed edges between them.GraphNode GraphNode represents a node in a Graph.Handler Handler represents a try-catch block.IdentityComparator IdentityComparator compares two objects using the result of System.identityHashCode.IfCmpStmt IfCmpStmt consists of a comparison expression (a left-hand expression, a comparison operator, and a right-hand expression) that is to be evaluated.IfStmt IfStmt is a super class of statements in which some expression is evaluated and one of two branches is taken.IfZeroStmt IfZeroStmt evaluates an expression and executes one of its two branches depending on whether or not the expression evaluated to zero.ImmutableIterator ImmutableIterator is simply an iterator whose contents can not be changed.IncOperand IncOperand encapsulates the operands to the iinc instruction.InductionVarAnalyzer InductionVarAnalyzer traverses a control flow graph and looks for array element swizzle operations inside loops.InitStmt InitStmt groups together the initialization of local variables (LocalExpr).InstanceOfExpr InstanceOfExpr represnts the instanceof opcode which determine if an object is of a given type.Instruction Instruction represents a single instruction in the JVM.InstructionAdapter This adapter provides a default implementation for every method in InstructionVisitor.InstructionVisitor The visitor pattern allows functionality to be added to a number of classes (or in this case one class, Instruction, that can vary in behavior) without modifying the classes themselves.JarFileCommitter Does a lot of the same stuff as ClassFileLoader, but classes are committed to a JAR file instead of regular files.JsrStmt JsrStmt represents a jsr instruction that jumps to a subroutine.JumpStmt JumpStmt is the super class for several classes that represent statements that chang the flow of control in a program.Label Label is used to label an instruction.LabelStmt LabelStmt is a placeholder in a Tree for a Label (the target of a jump).LeafExpr An expression that can appear as a leaf node in a Tree.LEGatherer LEGatherer visits a basic block and returns all the LocalExprs in a vectorLineNumberDebugInfo LineNumberDebugInfo is used to map a range of instructions to a line number in the original Java source file.LineNumberTable LineNumberTable is an attribute of a code attribute.Liveness Liveness represents the interference graph of the local variables contained in a control flow graph.LocalDebugInfo LocalDebugInfo is used to map a local variable index in a range of instructions to a local in the original Java source file.LocalExpr LocalExpr represents an expression that accesses a variable in a method's local variable table.LocalVariable LocalVariable represents a local variable index operand to various instructions.LocalVariableTable LocalVariableTable represents debugging information that may be used by a debugger to determine the value of a given local variable during program execution.Main Inserts residency, update, or swizzle checks into the methods of the classes specified on the command line.Main Performs a number of analyses on the methods of some specified classes.Main Prints the contents of a Java classfile to the console.Main Usage: java EDU.purdue.cs.bloat.optimize.Main [-options] classes dir where options include: -help print out this message -v -verbose turn on verbose mode -debug display a hideous amount of debug info -classpathlist directories in which to look for classes -f optimize files even if up-to-date -closure recursively optimize referenced classes -relax-loading don't report errors if a class is not found -skip skip the given class or package -only skip all but the given class or package -preserve-debug try to preserve debug information -[no]anno insert an annotation in the contant pool -[no]stack-alloc try to push locals onto the operand stack -peel-loops peel innermost loops to enable code hoisting (n >= 0 is the maximum loop level to peel) -[no]pre perform partial redundency elimination -[no]appre perform partial redundency elimination on access paths -[no]dce perform dead code elimination -diva perform demand-driven induction variable analysis -[no]prop perform copy and constant propagation Main This program just performs array initialization compaction on a class.Main This class is a driver program that uses BLOAT to make a Java class file smaller by removing all non-essential information (such as debugging information) from it.MemberRef MemberRef represents a method or field (as a NameAndType) and the class (as a Type) in which it is declared.MemExpr An expression that accesses a memory location.MemRefExpr MemRefExpr represents an expression that references a memory location as opposed to a local variable or a variable on the stack.Method Method represents a method in a Java classfile.MethodEditor MethodEditor provides a means to edit a method of a class.MethodInfo MethodInfo provides methods for accessing and modifying a method.Modifiers Modifiers is an interface containing constants used as modifiers of classes, fields, and methods.MonitorStmt MonitorStmt represents the monitorenter and monitorexit opcodes, which gain and release ownership of the monitor associated with a given object.MultiArrayOperand MultiArrayOperand encapsulates the operands to the multianewarray instruction.NameAndType Methods and fields are described by their name and type descriptor.NegExpr NegExpr represents the arithmetic negation of an expression.NewArrayExpr NewArrayExpr represents the newarray opcode which creates a new array of a specified length and element type.NewExpr NewExpr represents the new opcode that creates a new object of a specified type.NewMultiArrayExpr NewMultiArrayExpr represents the multianewarray opcode which creates a new multidimensional array.Node Node represents a node in an expression tree.NodeComparator NodeComparator is a class used to differentiate nodes in an expression tree.Nonstop Runs a Java program multiple times without the Virtual Machine exiting.Opcode Opcode is an interface containing constants defining the opcodes of instructions and related constants.OperandStack OperandStack is used to simulate the JVM stack.Peephole Performs some peephole optimizations such as loads and stores and removes unreachable instructions.PersistentBloatContext Maintains all BLOAT data structures as if they were meant to reside in a persistent store.PersistentCheckElimination Attempts to remove residency checks an update checks from a control flow graph.PhiCatchStmt A PhiCatchStmt is used to handle variables that are used inside an exception handler.PhiJoinStmt PhiJoinStmt represents a phi-function inserted into a control flow graph during conversion of variables to static single-assignment form.PhiStmt A PhiStmt is inserted into a CFG in Single Static Assignment for.PrintVisitor PrintVistor traverses a Tree and prints some information about each visited Node to a stream.RCExpr RCExpr represents a residency check.RegisterAllocator RegisterAllocator performs analysis on a control flow graph and determines the minimum amount of local variables needed in a method.ReplaceTarget ReplaceTarget replaces the block that is the target of a JumpStmt, JsrStmt, RetStmt, GotoStmt, SwitchStmt, or IfStmt with another Block.ReplaceVisitor ReplaceVisitor traverses a tree and replaces each occurrence of one Node with another Node.ResizeableArrayList ResizableArrayList is the same as ArrayList except that ensureSize not only increases the size of the array (super.ensureCapacity), but it also fills the empty space with null.RetStmt RetStmt represents the ret opcode which returns from a subroutine.ReturnAddressExpr ReturnAddressExpr represents a return address used with the ret opcode.ReturnExprStmt ReturnExprStmt represents the areturn opcode which returns a reference from a method.ReturnStmt ReturnStmt represents the return opcode which returns void from a method.SCStmt SCStmt represents a swizzle check on an element in an array.SerialVersionUID This class computes the serial version UID of a class modeled by aClassEditor.Shade This class is used to execute the BLOAT benchmarks while the Shade performanace monitoring software is running.ShiftExpr ShiftExpr represents a bit shift operation.SideEffectChecker SideEffectChecker traverses a tree and determines is a node has any side effects such as changing the stack, calling a function, or performing a residency check.SRStmt SRStmt represents the swizzle of a range of elements in an array.SSA Compute the SSA form of the control flow graph and build FUD chains.SSAConstructionInfo SSAConstructionInfo contains information needed to convert a CFG into SSA form.SSAGraph The SSA graph (also called the value graph) represents the nesting of expression in a control flow graph.SSAPRE Perform partial redundancy elimination of a CFG in SSA form using the SSA-based algorithm described in:StackExpr StackExpr represents an expression that is stored on the stack.StackManipStmt StackManipStmt represents the opcodes that manipulate the stack such as swap and dup.StackOpt StackOptimizer StackOptimizer analyzes the relative distances of various uses of the same definition of a local variable to add dups and swaps to the bytecode and eliminate loads and stores.StackPRE Eliminate partially redundant local variable loads and stores by replacing them with stack variables and dups.StaticFieldExpr StaticFieldExpr represents the getstatic opcode which gets a static (class) field from a class.Stats Stats is used to run a benchmark using an instrumented Java Virtual machine that counts the number of each kind of bytecodes executed.Stmt Stmt is a super class used to represent statements in a Java bytecode program.StoreExpr StoreExpr represents a store of an expression into a memory location.Subroutine Subroutine represents a subroutine (target of a jsr instruction) in java bytecode.Switch Switch is used to hold the lookup values and branch targets of a tableswitch or lookup switch instruction.SwitchStmt SwitchStmt represents a switch statement.Swizzler Swizzler represents an induction variable that is used as an index into an array.TBAA Performs Type-Based Alias Analysis (TBAA) to determine if one expression can alias another.ThrowStmt ThrowStmt represents the athrow opcode which throws an exception or error.Times This class allows Java to access the information obtained by the UNIX system call times.Tree Tree represents the expression tree of a basic Block.TreeVisitor TreeVisitor performs a traversal of a tree.TryCatch TryCatch holds the labels for the start and end of a protected block and the beginning of a catch block and the type of the exception to catch.Type Type represents a type descriptor in a classes constant pool.Type0Visitor Type0Visitor searches up the tree, starting at a LocalExpr, looking for an earlier instance of the same definition of that LocalExpr in a Type 0 relation.Type1Visitor Type1Visitor...TypeComparator A TypeComparator orders Types such that a subclass preceededs its superclass.TypeInference Typed-based alias analysis requires that we know the types of all entities in a method.UCExpr UPExpr represents an update check opcode which checks the persistent store to determine if a variable needs to be updated.UnionFind Represents the union-find data structure.UseInformation UseInformation stores information about a use of a local variable.UseMap ValueFolding ValueFolding uses a ValueFolder to determine which nodes in an expression tree can be removed or replaced by common expression elimination and constant propagation.ValueNumbering Performs value numbering analysis on the nodes in a control flow graph.VarExpr VarExpr represents an expression that accesses a local variable or a variable on the stack.VerifyCFG VerifyCFG visits the nodes in a control flow graph and verifies that certain properties of the graph are true.ZeroCheckExpr ZeroCheckExpr represents a check for a zero value.