llvm.org GIT mirror llvm / 6fbcc26
Added LLVM copyright header (for lack of a better term). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8 John Criswell 16 years ago
141 changed file(s) with 987 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 //===-- llvm/AbstractTypeUser.h - AbstractTypeUser Interface ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // The AbstractTypeUser class is an interface to be implemented by classes who
310 // could possible use an abstract type. Abstract types are denoted by the
0 //===- llvm/Analysis/AliasAnalysis.h - Alias Analysis Interface -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the generic AliasAnalysis interface, which is used as the
310 // common interface used by all clients of alias analysis information, and
0 //===- llvm/Analysis/AliasSetTracker.h - Build Alias Sets -------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines two classes: AliasSetTracker and AliasSet. These interface
310 // are used to classify a collection of pointer references into a maximal number
0 //===- CallGraph.h - Build a Module's call graph ----------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This interface is used to build and manipulate a call graph, which is a very
310 // useful tool for interprocedural optimization.
0 //==- llvm/Analysis/ConstantsScanner.h - Iterate over constants -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This class implements an iterator to walk through the constants referenced by
310 // a method. This is used by the Bytecode & Assembly writers to build constant
0 //===- DSGraph.h - Represent a collection of data structures ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This header defines the data structure graph.
310 //
0 //===- DSGraphTraits.h - Provide generic graph interface --------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file provides GraphTraits specializations for the DataStructure graph
310 // nodes, allowing datastructure graphs to be processed by generic graph
0 //===- DSNode.h - Node definition for datastructure graphs ------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Data structure graph nodes and some implementation of DSNodeHandle.
310 //
0 //===- DSSupport.h - Support for datastructure graphs -----------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Support for graph nodes, call sites, and types.
310 //
0 //===- DSGraph.h - Represent a collection of data structures ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This header defines the data structure graph.
310 //
0 //===- DSGraphTraits.h - Provide generic graph interface --------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file provides GraphTraits specializations for the DataStructure graph
310 // nodes, allowing datastructure graphs to be processed by generic graph
0 //===- DSNode.h - Node definition for datastructure graphs ------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Data structure graph nodes and some implementation of DSNodeHandle.
310 //
0 //===- DSSupport.h - Support for datastructure graphs -----------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Support for graph nodes, call sites, and types.
310 //
0 //===- DataStructure.h - Build data structure graphs ------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Implement the LLVM data structure analysis library.
310 //
0 //===- DataStructure.h - Build data structure graphs ------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Implement the LLVM data structure analysis library.
310 //
0 //===- DependenceGraph.h - Dependence graph for a function ------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file provides an explicit representation for the dependence graph
310 // of a function, with one node per instruction and one edge per dependence.
0 //===- llvm/Analysis/Dominators.h - Dominator Info Calculation --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the following classes:
310 // 1. DominatorSet: Calculates the [reverse] dominator set for a function
0 //===- llvm/Analysis/Expressions.h - Expression Analysis Utils --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines a package of expression analysis utilties:
310 //
0 //===- llvm/Analysis/FindUnsafePointerTypes.h - Unsafe pointers -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines a pass that can be used to determine, interprocedurally,
310 // which pointer types are accessed unsafely in a program. If there is an
0 //===- llvm/Analysis/FindUsedTypes.h - Find all Types in use ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This pass is used to seek out all of the types in use by the program.
310 //
0 //===- IPModRef.h - Compute IP Mod/Ref information --------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // class IPModRef:
310 //
0 //===- llvm/Analysis/InductionVariable.h - Induction variables --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This interface is used to identify and classify induction variables that
310 // exist in the program. Induction variables must contain a PHI node that
0 //===- llvm/Analysis/InstForest.h - Partition Func into forest --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This interface is used to partition a method into a forest of instruction
310 // trees, where the following invariants hold:
0 //===- llvm/Analysis/Interval.h - Interval Class Declaration ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declaration of the Interval class, which
310 // represents a set of CFG nodes and is a portion of an interval partition.
0 //===- IntervalIterator.h - Interval Iterator Declaration -------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines an iterator that enumerates the intervals in a control flow
310 // graph of some sort. This iterator is parametric, allowing iterator over the
0 //===- IntervalPartition.h - Interval partition Calculation -----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declaration of the IntervalPartition class, which
310 // calculates and represents the interval partition of a function, or a
0 //===- llvm/Analysis/LoadValueNumbering.h - Value # Load Insts --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines a value numbering pass that value #'s load instructions.
310 // To do this, it finds lexically identical load instructions, and uses alias
0 //===- llvm/Analysis/LoopInfo.h - Natural Loop Calculator -------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the LoopInfo class that is used to identify natural loops
310 // and determine the loop depth of various nodes of the CFG. Note that natural
0 //===- MemoryDepAnalysis.h - Compute dep graph for memory ops ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file provides a pass (MemoryDepAnalysis) that computes memory-based
310 // data dependences between instructions for each function in a module.
0 //===- PgmDependenceGraph.h - Enumerate the PDG for a function --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // The Program Dependence Graph (PDG) for a single function represents all
310 // data and control dependences for the function. This file provides an
0 //=- llvm/Analysis/PostDominators.h - Post Dominator Calculation-*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file exposes interfaces to post dominance information.
310 //
0 //===-- llvm/SlotCalculator.h - Calculate value slots -----------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This class calculates the slots that values will land in. This is useful for
310 // when writing bytecode or assembly out, because you have to know these things.
0 //===- llvm/Analysis/ValueNumbering.h - Value #'ing Interface ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the abstract ValueNumbering interface, which is used as the
310 // common interface used by all clients of value numbering information, and
0 //===-- llvm/Analysis/Verifier.h - Module Verifier --------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the function verifier interface, that can be used for some
310 // sanity checking of input to the system, and for checking that transformations
0 //===-- llvm/Argument.h - Definition of the Argument class ------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the Argument class, which represents an incoming formal
310 // argument to a Function.
0 //===-- llvm/Assembly/CWriter.h - C Printer for LLVM programs ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This functionality is implemented by the lib/CWriter library. This library
310 // is used to print C language files to an iostream.
0 //===-- llvm/Assembly/CachedWriter.h - Printer Accellerator -----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines a 'CacheWriter' class that is used to accelerate printing
310 // chunks of LLVM. This is used when a module is not being changed, but random
0 //===-- llvm/Assembly/Parser.h - Parser for VM assembly files ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // These classes are implemented by the lib/AsmParser library.
310 //
0 //===- llvm/Assembly/PrintModulePass.h - Printing Pass ----------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines two passes to print out a module. The PrintModulePass pass
310 // simply prints out the entire module when it is executed. The
0 //===-- llvm/Assembly/Writer.h - Printer for VM assembly files --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This functionality is implemented by the lib/Assembly/Writer library.
310 // This library is used to print VM assembly language files to an iostream. It
0 //===-- llvm/BasicBlock.h - Represent a basic block in the VM ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 ///
29 /// \class BasicBlock
310 ///
0 //===-- llvm/Bytecode/Format.h - VM bytecode file format info ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This header defines intrinsic constants that are useful to libraries that
310 // need to hack on bytecode files directly, like the reader and writer.
0 //===-- llvm/Bytecode/Primitives.h - Bytecode file format prims -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This header defines some basic functions for reading and writing basic
310 // primitive types to a bytecode stream.
0 //===-- llvm/Bytecode/Reader.h - Reader for VM bytecode files ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This functionality is implemented by the lib/Bytecode/Reader library.
310 // This library is used to read VM bytecode files from an iostream.
0 //===- llvm/Bytecode/WriteBytecodePass.h - Bytecode Writer Pass -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines a simple pass to write the working module to a file after
310 // pass processing is completed.
0 //===-- llvm/Bytecode/Writer.h - Writer for VM bytecode files ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This functionality is implemented by the lib/BytecodeWriter library.
310 // This library is used to write VM bytecode files to an iostream. First, you
0 //===- CallGraphSCCPass.h - Pass that operates BU on call graph -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the CallGraphSCCPass class, which is used for passes which
310 // are implemented as bottom-up traversals on the call graph. Because there may
0 //===-- CodeGen/FunctionLiveVarInfo.h - LiveVar Analysis --------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This is the interface for live variable info of a function that is required
310 // by any other part of the compiler
0 //===-- llvm/CodeGen/InstForest.h -------------------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Purpose:
310 // Convert SSA graph to instruction trees for instruction selection.
0 //===-- InstrScheduling.h - Interface To Instruction Scheduling -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines a minimal, but complete, interface to instruction
310 // scheduling.
0 //===-- llvm/CodeGen/InstrSelection.h ---------------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // External interface to instruction selection.
310 //
0 //===-- llvm/CodeGen/InstrSelectionSupport.h --------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Target-independent instruction selection code. See SparcInstrSelection.cpp
310 // for usage.
0 //===-- llvm/CodeGen/LiveVariables.h - Live Variable Analysis ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file implements the LiveVariable analysis pass. For each machine
310 // instruction in the function, this pass calculates the set of registers that
0 //===-- llvm/CodeGen/MachineBasicBlock.h ------------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Collect the sequence of machine instructions for a basic block.
310 //
0 //===-- llvm/CodeGen/MachineCodeEmitter.h - Code emission -------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines an abstract interface that is used by the machine code
310 // emission framework to output the code. This allows machine code emission to
0 //===-- llvm/CodeGen/MachineCodeForInstruction.h ----------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Representation of the sequence of machine instructions created for a single
310 // VM instruction. Additionally records information about hidden and implicit
0 //===-- CodeGen/MachineConstantPool.h - Abstract Constant Pool --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // The MachineConstantPool class keeps track of constants referenced by a
310 // function which must be spilled to memory. This is used for constants which
0 //===-- CodeGen/MachineFrameInfo.h - Abstract Stack Frame Rep. --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // The MachineFrameInfo class represents an abstract stack frame until
310 // prolog/epilog code is inserted. This class is key to allowing stack frame
0 //===-- llvm/CodeGen/MachineFunction.h --------------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Collect native machine code for a function. This class contains a list of
310 // MachineBasicBlock instances that make up the current compiled function.
0 //===-- llvm/CodeGen/MachineFunctionInfo.h ----------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This class keeps track of information about the stack frame and about the
310 // per-function constant pool.
0 //===-- MachineFunctionPass.h - Pass for MachineFunctions --------*-C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the MachineFunctionPass class. MachineFunctionPass's are
310 // just FunctionPass's, except they operate on machine code as part of a code
0 //===-- llvm/CodeGen/MachineInstr.h - MachineInstr class --------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declaration of the MachineInstr class, which is the
310 // basic representation for all target dependent machine instructions used by
0 //===-- llvm/CodeGen/MachineInstrAnnot.h ------------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Annotations used to pass information between code generation phases.
310 //
0 //===-- CodeGen/MachineInstBuilder.h - Simplify creation of MIs -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file exposes a function named BuildMI, which is useful for dramatically
310 // simplifying how MachineInstr's are created. Instead of using code like this:
0 //===-- Passes.h - Target independent code generation passes ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines interfaces to access the target independent code generation
310 // passes provided by the LLVM backend.
0 //===-- llvm/CodeGen/SSARegMap.h --------------------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Map register numbers to register classes that are correctly sized (typed) to
310 // hold the information. Assists register allocation. Contained by
0 //===-- SchedGraphCommon.h - Scheduling Base Graph --------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // A common graph class that is based on the SSA graph. It includes
310 // extra dependencies that are caused by machine resources.
0 //===-- llvm/CodeGen/SelectionDAG.h - InstSelection DAG Rep. ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file declares the SelectionDAG class, which is used to represent an LLVM
310 // function in a low-level representation suitable for instruction selection.
0 //===-- llvm/CodeGen/ValueSet.h ---------------------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This header is OBSOLETE, do not use it for new code.
310 //
0 //===- CodeGen/ValueTypes.h - Low-Level Target independ. types --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the set of low-level target independent types which various
310 // values in the code generator are. This allows the target specific behavior
0 //===-- llvm/Constant.h - Constant class definition -------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declaration of the Constant class.
310 //
0 //===-- ConstantHandling.h - Stuff for manipulating constants ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declarations of some cool operators that allow you
310 // to do natural things with constant pool values.
0 //===-- llvm/Constants.h - Constant class subclass definitions --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declarations for the subclasses of Constant, which
310 // represent the different type of constant pool values
0 //===-- llvm/DerivedTypes.h - Classes for handling data types ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declarations of classes that represent "derived
310 // types". These are things like "arrays of x" or "structure of x, y, z" or
0 //===- ExecutionEngine.h - Abstract Execution Engine Interface --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the abstract interface that implements execution support
310 // for LLVM.
0 //===-- GenericValue.h - Represent any type of LLVM value -------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // The GenericValue class is used to represent an LLVM value of arbitrary type.
310 //
0 //===-- llvm/Function.h - Class to represent a single function --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declaration of the Function class, which represents a
310 // single function/procedure in LLVM.
0 //===-- llvm/GlobalValue.h - Class to represent a global value --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file is a common base class of all globally definable objects. As such,
310 // it is subclassed by GlobalVariable and by Function. This is used because you
0 //===-- llvm/Global.h - Class to represent a global variable ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declaration of the GlobalVariable class, which
310 // represents a single global variable (or constant) in the VM.
0 //===-- llvm/InstrTypes.h - Important Instruction subclasses ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines various meta classes of instructions that exist in the VM
310 // representation. Specific concrete subclasses of these may be found in the
0 //===-- llvm/Instruction.def - File that describes Instructions -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains descriptions of the various LLVM instructions. This is
310 // used as a central place for enumerating the different instructions and
0 //===-- llvm/Instruction.h - Instruction class definition -------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declaration of the Instruction class, which is the
310 // base class for all of the LLVM instructions.
0 //===-- llvm/Instructions.h - Instruction subclass definitions --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file exposes the class definitions of all of the subclasses of the
310 // Instruction class. This is meant to be an easy way to get access to all
0 //===-- llvm/Instrinsics.h - LLVM Intrinsic Function Handling ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines a set of enums which allow processing of intrinsic
310 // functions. Values of these enum types are returned by
0 //===- llvm/Transforms/Utils/Linker.h - Module Linker Interface -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the interface to the module linker.
310 //
0 //===-- llvm/Module.h - C++ class to represent a VM module ------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declarations for the Module class that is used to
310 // maintain all the information related to a VM module.
0 //===-- llvm/ModuleProvider.h - Interface for module providers --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file provides an abstract interface for loading a module from some
310 // place. This interface allows incremental or random access loading of
0 //===- llvm/Pass.h - Base class for Passes ----------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines a base class that indicates that a specified class is a
310 // transformation pass implementation.
0 //===- llvm/PassAnalysisSupport.h - Analysis Pass Support code --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines stuff that is used to define and "use" Analysis Passes.
310 // This file is automatically #included by Pass.h, so:
0 //===- llvm/PassManager.h - Container for Passes ----------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the PassManager class. This class is used to hold,
310 // maintain, and optimize execution of Passes. The PassManager class ensures
0 //===- llvm/PassSupport.h - Pass Support code -------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines stuff that is used to define and "use" Passes. This file
310 // is automatically #included by Pass.h, so:
0 //===-- llvm/SlotCalculator.h - Calculate value slots -----------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This class calculates the slots that values will land in. This is useful for
310 // when writing bytecode or assembly out, because you have to know these things.
0 //===-- llvm/Support/CFG.h - Process LLVM structures as graphs --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines specializations of GraphTraits that allow Function and
310 // BasicBlock graphs to be treated as proper graphs for generic algorithms.
0 //===-- llvm/Support/CallSite.h - Abstract Call & Invoke instrs -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the CallSite class, which is a handy wrapper for code that
310 // wants to treat Call and Invoke instructions in a generic way.
0 //===-- llvm/Support/ConstantRange.h - Represent a range --------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Represent a range of possible values that may occur when the program is run
310 // for an integral value. This keeps track of a lower and upper bound for the
0 //===- llvm/Support/InstIterator.h - Classes for inst iteration -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains definitions of two iterators for iterating over the
310 // instructions in a function. This is effectively a wrapper around a two level
0 //===- llvm/Support/InstVisitor.h - Define instruction visitors -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This template class is used to define instruction visitors in a typesafe
310 // manner without having to use lots of casts and a big switch statement (in
0 //===- llvm/Transforms/Utils/Linker.h - Module Linker Interface -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the interface to the module linker.
310 //
0 //===-- Mangler.h - Self-contained c/asm llvm name mangler ------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Unified name mangler for CWriter and assembly backends.
310 //
0 //===- llvm/Support/PassNameParser.h ----------------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file the PassNameParser and FilteredPassNameParser<> classes, which are
310 // used to add command line arguments to a utility for all of the passes that
0 //===-- Support/ToolRunner.h ------------------------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file exposes an abstraction around a platform C compiler, used to
310 // compile C and assembly code. It also exposes an "AbstractIntepreter"
0 //===-- llvm/Support/ValueHolder.h - Wrapper for Value's --------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This class defines a simple subclass of User, which keeps a pointer to a
310 // Value, which automatically updates when Value::replaceAllUsesWith is called.
0 //===-- llvm/SymbolTable.h - Implement a type plane'd symtab ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file implements a symbol table that has planed broken up by type.
310 // Identical types may have overlapping symbol names as long as they are
0 //===-- llvm/SymbolTableListTraits.h - Traits for iplist --------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines a generic class that is used to implement the automatic
310 // symbol table manipulation that occurs when you put (for example) a named
0 //===- Target/MRegisterInfo.h - Target Register Information -----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file describes an abstract interface used to get information about a
310 // target machines register file. This information is used for a variety of
0 //===-- llvm/Target/TargetCacheInfo.h ---------------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Describes properties of the target cache architecture.
310 //
0 //===-- llvm/Target/TargetData.h - Data size & alignment info ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines target properties related to datatype size/offset/alignment
310 // information. It uses lazy annotations to cache information about how
0 //===-- llvm/Target/TargetFrameInfo.h ---------------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Interface to describe the layout of a stack frame on the target machine.
310 //
0 //===-- llvm/Target/TargetInstrInfo.h - Instruction Info --------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file describes the target machine instructions to the code generator.
310 //
0 //===-- llvm/Target/TargetMachine.h - Target Information --------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file describes the general parts of a Target machine.
310 //
0 //===-- llvm/Target/TargetMachineImpls.h - Target Descriptions --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the entry point to getting access to the various target
310 // machine implementations available to LLVM.
0 //===-- llvm/Target/TargetRegInfo.h - Target Register Info ------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file is used to describe the register system of a target to the
310 // register allocator.
0 //===- Target/TargetSchedInfo.h - Target Instruction Sched Info -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file describes the target machine to the instruction scheduler.
310 //
0 //===- llvm/Transforms/IPO.h - Interprocedural Transformations --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This header file defines prototypes for accessor functions that expose passes
310 // in the IPO transformations library.
0 //===- Transforms/Instrumentation.h - Instrumentation passes ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This files defines constructor functions for instrumentation passes.
310 //
0 //===-- llvm/Transforms/MutateStructTypes.h - Rearrange structs -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This pass is used to change structure accesses and type definitions in some
310 // way. It can be used to arbitrarily permute structure fields, safely, without
0 //===-- Scalar.h - Scalar Transformations -----------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This header file defines prototypes for accessor functions that expose passes
310 // in the Scalar transformations library.
0 //===-- Transform/Utils/BasicBlockUtils.h - BasicBlock Utils ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This family of functions perform manipulations on basic blocks, and
310 // instructions contained within basic blocks.
0 //===- Cloning.h - Clone various parts of LLVM programs ---------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines various functions that are used to clone chunks of LLVM
310 // code for various purposes. This varies from copying whole modules into new
0 //===- DemoteRegToStack.h - Move a virtual reg. to stack --------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file provides the function:
310 // AllocaInst* DemoteRegToStack(Instruction& X):
0 //===- llvm/Transforms/Utils/Linker.h - Module Linker Interface -*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the interface to the module linker.
310 //
0 //===-- Local.h - Functions to perform local transformations ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This family of functions perform various local transformations to the
310 // program.
0 //===- PromoteMemToReg.h - Promote Allocas to Scalars -----------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file exposes an interface to promote alloca instructions to SSA
310 // registers, by using the SSA construction algorithm.
0 //===-- UnifyFunctionExitNodes.h - Ensure fn's have one return --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This pass is used to ensure that functions have at most one return and one
310 // unwind instruction in them. Additionally, it keeps track of which node is
0 //===-- llvm/Type.def - File that describes various LLVM types --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains descriptions of the various LLVM types and derived types.
310 // This file serves as a source of in source documentation and a can be
0 //===-- llvm/Type.h - Classes for handling data types -----------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declaration of the Type class. For more "Type" type
310 // stuff, look in DerivedTypes.h.
0 //===-- llvm/Use.h - Definition of the Use class ----------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This defines the Use class. The Use class represents the operand of an
310 // instruction or some other User instance which refers to a Value. The Use
0 //===-- llvm/User.h - User class definition ---------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This class defines the interface that one who 'use's a Value must implement.
310 // Each instance of the Value class keeps track of what User's have handles
0 //===-- llvm/Value.h - Definition of the Value class ------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the very important Value class. This is subclassed by a
310 // bunch of other important classes, like Instruction, Function, Type, etc...
0 //===-- llvm/iMemory.h - Memory Operator node definitions -------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declarations of all of the memory related operators.
310 // This includes: malloc, free, alloca, load, store, and getelementptr
0 //===-- llvm/iOperators.h - Binary Operator node definitions ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declarations of the Binary Operator classes.
310 //
0 //===-- llvm/iOther.h - "Other" instruction node definitions ----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declarations for instructions that fall into the
310 // grandiose 'other' catagory...
0 //===-- llvm/iPHINode.h - PHI instruction definition ------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file defines the PHINode class.
310 //
0 //===-- llvm/iTerminators.h - Termintator instruction nodes -----*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declarations for all the subclasses of the Instruction
310 // class which represent "terminator" instructions. Terminator instructions are
0 //===-- llvm/SlotCalculator.h - Calculate value slots -----------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This class calculates the slots that values will land in. This is useful for
310 // when writing bytecode or assembly out, because you have to know these things.
0 //===-- llvm/CodeGen/MachineCodeForInstruction.h ----------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Representation of the sequence of machine instructions created for a single
310 // VM instruction. Additionally records information about hidden and implicit
0 //===-- llvm/CodeGen/MachineFunctionInfo.h ----------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This class keeps track of information about the stack frame and about the
310 // per-function constant pool.
0 //===-- llvm/CodeGen/MachineInstrAnnot.h ------------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // Annotations used to pass information between code generation phases.
310 //
0 //===-- ConstantHandling.h - Stuff for manipulating constants ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declarations of some cool operators that allow you
310 // to do natural things with constant pool values.
0 //===-- ConstantHandling.h - Stuff for manipulating constants ---*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file contains the declarations of some cool operators that allow you
310 // to do natural things with constant pool values.
0 //===-- Support/ToolRunner.h ------------------------------------*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
18 //
29 // This file exposes an abstraction around a platform C compiler, used to
310 // compile C and assembly code. It also exposes an "AbstractIntepreter"