[llvm-commits] [www-releases] r170845 [19/55] - in /www-releases/trunk/3.2/docs: ./ CommandGuide/ HistoricalNotes/ _static/ _templates/ _themes/ _themes/llvm-theme/ _themes/llvm-theme/static/ doxygen/ doxygen/html/ llvm-theme/ llvm-theme/static/ tutorial/

Tanya Lattner tonic at nondot.org
Thu Dec 20 22:58:17 PST 2012


Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8cpp__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8cpp__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8cpp__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8cpp__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,47 @@
+<map id="G" name="G">
+<area shape="rect" href="$MSP430FrameLowering_8h.html" title="MSP430FrameLowering.h" alt="" coords="5,239,187,265"/>
+<area shape="rect" href="$MSP430InstrInfo_8h.html" title="MSP430InstrInfo.h" alt="" coords="3020,84,3156,111"/>
+<area shape="rect" href="$MachineFunction_8h.html" title="llvm/CodeGen/MachineFunction.h" alt="" coords="1833,239,2065,265"/>
+<area shape="rect" href="$MSP430MachineFunctionInfo_8h.html" title="MSP430MachineFunctionInfo.h" alt="" coords="1841,84,2055,111"/>
+<area shape="rect" href="$Function_8h.html" title="llvm/Function.h" alt="" coords="523,239,637,265"/>
+<area shape="rect" href="$MachineFrameInfo_8h.html" title="llvm/CodeGen/MachineFrameInfo.h" alt="" coords="4325,316,4568,343"/>
+<area shape="rect" href="$MachineInstrBuilder_8h.html" title="llvm/CodeGen/MachineInstrBuilder.h" alt="" coords="1661,161,1912,188"/>
+<area shape="rect" href="$MachineModuleInfo_8h.html" title="llvm/CodeGen/MachineModuleInfo.h" alt="" coords="2899,239,3147,265"/>
+<area shape="rect" href="$MachineRegisterInfo_8h.html" title="llvm/CodeGen/MachineRegisterInfo.h" alt="" coords="2180,239,2433,265"/>
+<area shape="rect" href="$DataLayout_8h.html" title="llvm/DataLayout.h" alt="" coords="2488,316,2624,343"/>
+<area shape="rect" href="$TargetOptions_8h.html" title="llvm/Target/TargetOptions.h" alt="" coords="541,84,736,111"/>
+<area shape="rect" href="$CommandLine_8h.html" title="llvm/Support/CommandLine.h" alt="" coords="4091,316,4301,343"/>
+<area shape="rect" href="$MSP430_8h.html" title="MSP430.h" alt="" coords="101,316,187,343"/>
+<area shape="rect" href="$MSP430Subtarget_8h.html" title="MSP430Subtarget.h" alt="" coords="13,393,163,420"/>
+<area shape="rect" href="$TargetFrameLowering_8h.html" title="llvm/Target/TargetFrameLowering.h" alt="" coords="1136,316,1376,343"/>
+<area shape="rect" href="$MachineBasicBlock_8h.html" title="llvm/CodeGen/MachineBasicBlock.h" alt="" coords="1503,393,1751,420"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="2619,548,2803,575"/>
+<area shape="rect" href="$MSP430RegisterInfo_8h.html" title="MSP430RegisterInfo.h" alt="" coords="3300,161,3460,188"/>
+<area shape="rect" href="$TargetInstrInfo_8h.html" title="llvm/Target/TargetInstrInfo.h" alt="" coords="2887,161,3081,188"/>
+<area shape="rect" href="$TargetRegisterInfo_8h.html" title="llvm/Target/TargetRegisterInfo.h" alt="" coords="2195,316,2413,343"/>
+<area shape="rect" href="$CallingConv_8h.html" title="llvm/CallingConv.h" alt="" coords="2005,393,2141,420"/>
+<area shape="rect" href="$ilist_8h.html" title="llvm/ADT/ilist.h" alt="" coords="736,393,851,420"/>
+<area shape="rect" href="$DebugLoc_8h.html" title="llvm/Support/DebugLoc.h" alt="" coords="1989,316,2171,343"/>
+<area shape="rect" href="$Allocator_8h.html" title="llvm/Support/Allocator.h" alt="" coords="2624,393,2797,420"/>
+<area shape="rect" href="$Recycler_8h.html" title="llvm/Support/Recycler.h" alt="" coords="771,316,939,343"/>
+<area shape="rect" href="$Compiler_8h.html" title="llvm/Support/Compiler.h" alt="" coords="2624,471,2797,497"/>
+<area shape="rect" href="$ErrorHandling_8h.html" title="llvm/Support/ErrorHandling.h" alt="" coords="875,393,1080,420"/>
+<area shape="rect" href="$GlobalValue_8h.html" title="llvm/GlobalValue.h" alt="" coords="1776,316,1915,343"/>
+<area shape="rect" href="$BasicBlock_8h.html" title="llvm/BasicBlock.h" alt="" coords="515,316,645,343"/>
+<area shape="rect" href="$Argument_8h.html" title="llvm/Argument.h" alt="" coords="312,316,440,343"/>
+<area shape="rect" href="$Attributes_8h.html" title="llvm/Attributes.h" alt="" coords="415,393,540,420"/>
+<area shape="rect" href="$SmallVector_8h.html" title="llvm/ADT/SmallVector.h" alt="" coords="3813,393,3981,420"/>
+<area shape="rect" href="$type__traits_8h.html" title="llvm/Support/type_traits.h" alt="" coords="3212,471,3399,497"/>
+<area shape="rect" href="$Pass_8h.html" title="llvm/Pass.h" alt="" coords="2407,393,2497,420"/>
+<area shape="rect" href="$Metadata_8h.html" title="llvm/Metadata.h" alt="" coords="3176,316,3299,343"/>
+<area shape="rect" href="$MachineLocation_8h.html" title="llvm/MC/MachineLocation.h" alt="" coords="3323,316,3517,343"/>
+<area shape="rect" href="$MCContext_8h.html" title="llvm/MC/MCContext.h" alt="" coords="2944,316,3101,343"/>
+<area shape="rect" href="$DenseMap_8h.html" title="llvm/ADT/DenseMap.h" alt="" coords="3059,393,3219,420"/>
+<area shape="rect" href="$Dwarf_8h.html" title="llvm/Support/Dwarf.h" alt="" coords="3541,316,3693,343"/>
+<area shape="rect" href="$ValueHandle_8h.html" title="llvm/Support/ValueHandle.h" alt="" coords="3819,316,4016,343"/>
+<area shape="rect" href="$PointerIntPair_8h.html" title="llvm/ADT/PointerIntPair.h" alt="" coords="3563,393,3739,420"/>
+<area shape="rect" href="$SmallPtrSet_8h.html" title="llvm/ADT/SmallPtrSet.h" alt="" coords="3243,393,3411,420"/>
+<area shape="rect" href="$MachineInstrBundle_8h.html" title="llvm/CodeGen/MachineInstrBundle.h" alt="" coords="1501,316,1752,343"/>
+<area shape="rect" href="$BitVector_8h.html" title="llvm/ADT/BitVector.h" alt="" coords="963,316,1112,343"/>
+<area shape="rect" href="$IndexedMap_8h.html" title="llvm/ADT/IndexedMap.h" alt="" coords="2699,316,2869,343"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+10d82d273fc46be2f45d396375d683dc
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8h__dep__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8h__dep__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8h__dep__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430FrameLowering_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,146 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MSP430FrameLowering.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="MSP430.h",height=0.2,width=0.4,color="black",URL="$MSP430_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="MCTargetDesc/MSP430MCTargetDesc.h",height=0.2,width=0.4,color="black",URL="$MSP430MCTargetDesc_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="MSP430GenRegisterInfo.inc",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="MSP430GenInstrInfo.inc",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="MSP430GenSubtargetInfo.inc",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Target/TargetMachine.h",height=0.2,width=0.4,color="black",URL="$Target_2TargetMachine_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node8 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="red",URL="$PassSupport_8h.html"];
+  Node11 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="red",URL="$PassAnalysisSupport_8h.html"];
+  Node13 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="red",URL="$type__traits_8h.html"];
+  Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node16 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/Support/CodeGen.h",height=0.2,width=0.4,color="black",URL="$CodeGen_8h.html"];
+  Node7 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Target/TargetOptions.h",height=0.2,width=0.4,color="black",URL="$TargetOptions_8h.html"];
+  Node25 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/TargetTransformInfo.h",height=0.2,width=0.4,color="black",URL="$TargetTransformInfo_8h.html"];
+  Node26 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/AddressingMode.h",height=0.2,width=0.4,color="black",URL="$AddressingMode_8h.html"];
+  Node27 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/Type.h",height=0.2,width=0.4,color="red",URL="$Type_8h.html"];
+  Node28 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/Target/TargetTransformImpl.h",height=0.2,width=0.4,color="black",URL="$TargetTransformImpl_8h.html"];
+  Node29 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/CodeGen/ValueTypes.h",height=0.2,width=0.4,color="red",URL="$ValueTypes_8h.html"];
+  Node30 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="MSP430Subtarget.h",height=0.2,width=0.4,color="black",URL="$MSP430Subtarget_8h.html"];
+  Node31 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Target/TargetSubtargetInfo.h",height=0.2,width=0.4,color="black",URL="$TargetSubtargetInfo_8h.html"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/MC/MCSubtargetInfo.h",height=0.2,width=0.4,color="black",URL="$MCSubtargetInfo_8h.html"];
+  Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/MC/SubtargetFeature.h",height=0.2,width=0.4,color="red",URL="$SubtargetFeature_8h.html"];
+  Node34 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/MC/MCInstrItineraries.h",height=0.2,width=0.4,color="red",URL="$MCInstrItineraries_8h.html"];
+  Node35 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Target/TargetFrameLowering.h",height=0.2,width=0.4,color="black",URL="$TargetFrameLowering_8h.html"];
+  Node36 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="black",URL="$MachineBasicBlock_8h.html"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="black",URL="$MachineInstr_8h.html"];
+  Node38 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/CodeGen/MachineOperand.h",height=0.2,width=0.4,color="black",URL="$MachineOperand_8h.html"];
+  Node39 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/MC/MCInstrDesc.h",height=0.2,width=0.4,color="black",URL="$MCInstrDesc_8h.html"];
+  Node40 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/Target/TargetOpcodes.h",height=0.2,width=0.4,color="black",URL="$TargetOpcodes_8h.html"];
+  Node38 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="red",URL="$ArrayRef_8h.html"];
+  Node42 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="red",URL="$ilist_8h.html"];
+  Node43 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/ADT/ilist_node.h",height=0.2,width=0.4,color="black",URL="$ilist__node_8h.html"];
+  Node38 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="red",URL="$STLExtras_8h.html"];
+  Node45 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node45 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="red",URL="$DenseMapInfo_8h.html"];
+  Node47 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/InlineAsm.h",height=0.2,width=0.4,color="red",URL="$InlineAsm_8h.html"];
+  Node48 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node38 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node37 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430ISelLowering_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430ISelLowering_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430ISelLowering_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430ISelLowering_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,110 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MSP430ISelLowering.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_8a55ec9894173378e0d08f27f306eeee.html">Target</a>      </li>
+      <li class="navelem"><a class="el" href="dir_602b31a765eb4e3038b3d345fb70f8b8.html">MSP430</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a> |
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">MSP430ISelLowering.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="MSP430_8h_source.html">MSP430.h</a>"</code><br/>
+<code>#include "<a class="el" href="SelectionDAG_8h_source.html">llvm/CodeGen/SelectionDAG.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetLowering_8h_source.html">llvm/Target/TargetLowering.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for MSP430ISelLowering.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="MSP430ISelLowering_8h__incl.png" border="0" usemap="#MSP430ISelLowering_8h" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div><div class="textblock"><div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dyncontent">
+<div class="center"><img src="MSP430ISelLowering_8h__dep__incl.png" border="0" usemap="#MSP430ISelLowering_8hdep" alt=""/></div>
+<!-- MAP 1 -->
+</div>
+</div>
+<p><a href="MSP430ISelLowering_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1MSP430TargetLowering.html">llvm::MSP430TargetLowering</a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html">llvm</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>List of target independent CodeGen pass IDs. </p>
+<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm_1_1MSP430ISD.html">llvm::MSP430ISD</a></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <br/>
+  <a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194ae5d1a9d2fbc06f7d50789644585d145e">llvm::MSP430ISD::FIRST_NUMBER</a> =  ISD::BUILTIN_OP_END, 
+<a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194ad0c69583383891991a932606da1ad31b">llvm::MSP430ISD::RET_FLAG</a>, 
+<a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194aeede4149905d84e9d2c821d490e187da">llvm::MSP430ISD::RETI_FLAG</a>, 
+<a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194a1a8aac0ab3dd9efd41309a89185be1b8">llvm::MSP430ISD::RRA</a>, 
+<br/>
+  <a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194adfd55b32c5ff0b26a6e10e15fbe0f267">llvm::MSP430ISD::RLA</a>, 
+<a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194abfaa29bfc6391f3ab04d0728ec65f26c">llvm::MSP430ISD::RRC</a>, 
+<a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194a1a745df8676b5173925ea7bbc61b7151">llvm::MSP430ISD::CALL</a>, 
+<a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194acec80506eab90924a64f136e0dbfd266">llvm::MSP430ISD::Wrapper</a>, 
+<br/>
+  <a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194abe1f71803e38f141a54883c9e5677d26">llvm::MSP430ISD::CMP</a>, 
+<a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194a36303f15bb799b26a32ce381047c7406">llvm::MSP430ISD::SETCC</a>, 
+<a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194a33618f9677136fd47b1fc1e8743afd02">llvm::MSP430ISD::BR_CC</a>, 
+<a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194aa5969079c845c62591838db9c999c723">llvm::MSP430ISD::SELECT_CC</a>, 
+<br/>
+  <a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194a18b92a2a02760ed90d16cb0ab0ffe9f3">llvm::MSP430ISD::SHL</a>, 
+<a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194a1bbe068fd8209f70eb7d2f86b4fc64dd">llvm::MSP430ISD::SRA</a>, 
+<a class="el" href="namespacellvm_1_1MSP430ISD.html#a18e6de444e90a045ba7fc630af9bd194a8d293f712188331493ffdf16fdd46ccd">llvm::MSP430ISD::SRL</a>
+<br/>
+ }</td></tr>
+</table>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:36 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430ISelLowering_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430ISelLowering_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430ISelLowering_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430ISelLowering_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,168 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MSP430ISelLowering.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="MSP430.h",height=0.2,width=0.4,color="black",URL="$MSP430_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="MCTargetDesc/MSP430MCTargetDesc.h",height=0.2,width=0.4,color="black",URL="$MSP430MCTargetDesc_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="MSP430GenRegisterInfo.inc",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="MSP430GenInstrInfo.inc",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="MSP430GenSubtargetInfo.inc",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Target/TargetMachine.h",height=0.2,width=0.4,color="black",URL="$Target_2TargetMachine_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/Pass.h",height=0.2,width=0.4,color="red",URL="$Pass_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node8 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="llvm/Support/CodeGen.h",height=0.2,width=0.4,color="black",URL="$CodeGen_8h.html"];
+  Node7 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/Target/TargetOptions.h",height=0.2,width=0.4,color="black",URL="$TargetOptions_8h.html"];
+  Node12 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/TargetTransformInfo.h",height=0.2,width=0.4,color="red",URL="$TargetTransformInfo_8h.html"];
+  Node13 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/AddressingMode.h",height=0.2,width=0.4,color="red",URL="$AddressingMode_8h.html"];
+  Node7 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/Target/TargetTransformImpl.h",height=0.2,width=0.4,color="black",URL="$TargetTransformImpl_8h.html"];
+  Node15 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/CodeGen/ValueTypes.h",height=0.2,width=0.4,color="red",URL="$ValueTypes_8h.html"];
+  Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node16 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node18 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node18 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/CodeGen/SelectionDAG.h",height=0.2,width=0.4,color="black",URL="$SelectionDAG_8h.html"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="black",URL="$ilist_8h.html"];
+  Node22 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node22 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/ADT/DenseSet.h",height=0.2,width=0.4,color="black",URL="$DenseSet_8h.html"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="red",URL="$DenseMap_8h.html"];
+  Node26 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node26 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/ADT/StringMap.h",height=0.2,width=0.4,color="black",URL="$StringMap_8h.html"];
+  Node28 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="red",URL="$Allocator_8h.html"];
+  Node29 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/CodeGen/SelectionDAGNodes.h",height=0.2,width=0.4,color="red",URL="$SelectionDAGNodes_8h.html"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/Constants.h",height=0.2,width=0.4,color="red",URL="$Constants_8h.html"];
+  Node30 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Instructions.h",height=0.2,width=0.4,color="red",URL="$Instructions_8h.html"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Attributes.h",height=0.2,width=0.4,color="red",URL="$Attributes_8h.html"];
+  Node33 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node32 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="red",URL="$SmallVector_8h.html"];
+  Node35 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/ADT/FoldingSet.h",height=0.2,width=0.4,color="red",URL="$FoldingSet_8h.html"];
+  Node36 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node30 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/ADT/ilist_node.h",height=0.2,width=0.4,color="black",URL="$ilist__node_8h.html"];
+  Node30 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/ADT/SmallPtrSet.h",height=0.2,width=0.4,color="red",URL="$SmallPtrSet_8h.html"];
+  Node39 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="red",URL="$STLExtras_8h.html"];
+  Node40 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/CodeGen/ISDOpcodes.h",height=0.2,width=0.4,color="black",URL="$ISDOpcodes_8h.html"];
+  Node30 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node30 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/Support/RecyclingAllocator.h",height=0.2,width=0.4,color="red",URL="$RecyclingAllocator_8h.html"];
+  Node21 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="map",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Target/TargetLowering.h",height=0.2,width=0.4,color="black",URL="$TargetLowering_8h.html"];
+  Node46 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/InlineAsm.h",height=0.2,width=0.4,color="red",URL="$InlineAsm_8h.html"];
+  Node47 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/Support/CallSite.h",height=0.2,width=0.4,color="red",URL="$CallSite_8h.html"];
+  Node48 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/CodeGen/RuntimeLibcalls.h",height=0.2,width=0.4,color="black",URL="$RuntimeLibcalls_8h.html"];
+  Node49 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/Target/TargetCallingConv.h",height=0.2,width=0.4,color="red",URL="$TargetCallingConv_8h.html"];
+  Node50 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MSP430InstPrinter.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_8a55ec9894173378e0d08f27f306eeee.html">Target</a>      </li>
+      <li class="navelem"><a class="el" href="dir_602b31a765eb4e3038b3d345fb70f8b8.html">MSP430</a>      </li>
+      <li class="navelem"><a class="el" href="dir_c80305d8496a0ccafcdf1fe9f1ee1634.html">InstPrinter</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MSP430InstPrinter.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="MSP430InstPrinter_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- MSP430InstPrinter.cpp - Convert MSP430 MCInst to assembly syntax --===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This class prints an MSP430 MCInst to a .s file.</span>
+<a name="l00011"></a>00011 <span class="comment">//</span>
+<a name="l00012"></a>00012 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00013"></a>00013 
+<a name="l00014"></a><a class="code" href="MSP430InstPrinter_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">00014</a> <span class="preprocessor">#define DEBUG_TYPE "asm-printer"</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="MSP430_8h.html">MSP430.h</a>"</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="MSP430InstPrinter_8h.html">MSP430InstPrinter.h</a>"</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="MCInst_8h.html">llvm/MC/MCInst.h</a>"</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="MCAsmInfo_8h.html">llvm/MC/MCAsmInfo.h</a>"</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include "<a class="code" href="MCExpr_8h.html">llvm/MC/MCExpr.h</a>"</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="ErrorHandling_8h.html">llvm/Support/ErrorHandling.h</a>"</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="FormattedStream_8h.html">llvm/Support/FormattedStream.h</a>"</span>
+<a name="l00022"></a>00022 <span class="keyword">using namespace </span>llvm;
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 <span class="comment">// Include the auto-generated portion of the assembly writer.</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include "MSP430GenAsmWriter.inc"</span>
+<a name="l00027"></a>00027 
+<a name="l00028"></a><a class="code" href="classllvm_1_1MSP430InstPrinter.html#ad3b6a5a3507b59e772e53a7cd8faaef6">00028</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1MSP430InstPrinter.html#ad3b6a5a3507b59e772e53a7cd8faaef6">MSP430InstPrinter::printInst</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MCInst.html">MCInst</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>, <a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &O,
+<a name="l00029"></a>00029                                   <a class="code" href="classllvm_1_1StringRef.html">StringRef</a> Annot) {
+<a name="l00030"></a>00030   <a class="code" href="classllvm_1_1MSP430InstPrinter.html#a984df7f3510cdda0f736d3a450e5deae">printInstruction</a>(MI, O);
+<a name="l00031"></a>00031   <a class="code" href="classllvm_1_1MCInstPrinter.html#aab90c946a08959c165433b2c125895ea" title="Utility function for printing annotations.">printAnnotation</a>(O, Annot);
+<a name="l00032"></a>00032 }
+<a name="l00033"></a>00033 
+<a name="l00034"></a><a class="code" href="classllvm_1_1MSP430InstPrinter.html#aaeadfa7b7260724e611760f3ade8a0f0">00034</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1MSP430InstPrinter.html#aaeadfa7b7260724e611760f3ade8a0f0">MSP430InstPrinter::printPCRelImmOperand</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MCInst.html">MCInst</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>, <span class="keywordtype">unsigned</span> OpNo,
+<a name="l00035"></a>00035                                              <a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &O) {
+<a name="l00036"></a>00036   <span class="keyword">const</span> <a class="code" href="classllvm_1_1MCOperand.html">MCOperand</a> &Op = MI-><a class="code" href="classllvm_1_1MCInst.html#a82523248f1c8145141a026cf3e57cf48">getOperand</a>(OpNo);
+<a name="l00037"></a>00037   <span class="keywordflow">if</span> (Op.<a class="code" href="classllvm_1_1MCOperand.html#a55eeb71ac0e60e12cb37f99e984bda81">isImm</a>())
+<a name="l00038"></a>00038     O << Op.<a class="code" href="classllvm_1_1MCOperand.html#a650484333896fc7e8485cfa30f6d7ad5">getImm</a>();
+<a name="l00039"></a>00039   <span class="keywordflow">else</span> {
+<a name="l00040"></a>00040     assert(Op.<a class="code" href="classllvm_1_1MCOperand.html#aae789dd5c5d7cd72d506a2ee66a7053f">isExpr</a>() && <span class="stringliteral">"unknown pcrel immediate operand"</span>);
+<a name="l00041"></a>00041     O << *Op.<a class="code" href="classllvm_1_1MCOperand.html#a89ba9ada9753995d37920bd8a8c02662">getExpr</a>();
+<a name="l00042"></a>00042   }
+<a name="l00043"></a>00043 }
+<a name="l00044"></a>00044 
+<a name="l00045"></a><a class="code" href="classllvm_1_1MSP430InstPrinter.html#abecc378aa370931cccf28aa35447d913">00045</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1MSP430InstPrinter.html#abecc378aa370931cccf28aa35447d913">MSP430InstPrinter::printOperand</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MCInst.html">MCInst</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>, <span class="keywordtype">unsigned</span> OpNo,
+<a name="l00046"></a>00046                                      <a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &O, <span class="keyword">const</span> <span class="keywordtype">char</span> *Modifier) {
+<a name="l00047"></a>00047   assert((Modifier == 0 || Modifier[0] == 0) && <span class="stringliteral">"No modifiers supported"</span>);
+<a name="l00048"></a>00048   <span class="keyword">const</span> <a class="code" href="classllvm_1_1MCOperand.html">MCOperand</a> &Op = MI-><a class="code" href="classllvm_1_1MCInst.html#a82523248f1c8145141a026cf3e57cf48">getOperand</a>(OpNo);
+<a name="l00049"></a>00049   <span class="keywordflow">if</span> (Op.<a class="code" href="classllvm_1_1MCOperand.html#a8951582e9d598a757b9e07e3e178c578">isReg</a>()) {
+<a name="l00050"></a>00050     O << <a class="code" href="classllvm_1_1MSP430InstPrinter.html#abfcfdefe992bd107ec7870654a255188">getRegisterName</a>(Op.<a class="code" href="classllvm_1_1MCOperand.html#a291c2118315720369e2c74913435c835" title="getReg - Returns the register number.">getReg</a>());
+<a name="l00051"></a>00051   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Op.<a class="code" href="classllvm_1_1MCOperand.html#a55eeb71ac0e60e12cb37f99e984bda81">isImm</a>()) {
+<a name="l00052"></a>00052     O << <span class="charliteral">'#'</span> << Op.<a class="code" href="classllvm_1_1MCOperand.html#a650484333896fc7e8485cfa30f6d7ad5">getImm</a>();
+<a name="l00053"></a>00053   } <span class="keywordflow">else</span> {
+<a name="l00054"></a>00054     assert(Op.<a class="code" href="classllvm_1_1MCOperand.html#aae789dd5c5d7cd72d506a2ee66a7053f">isExpr</a>() && <span class="stringliteral">"unknown operand kind in printOperand"</span>);
+<a name="l00055"></a>00055     O << <span class="charliteral">'#'</span> << *Op.<a class="code" href="classllvm_1_1MCOperand.html#a89ba9ada9753995d37920bd8a8c02662">getExpr</a>();
+<a name="l00056"></a>00056   }
+<a name="l00057"></a>00057 }
+<a name="l00058"></a>00058 
+<a name="l00059"></a><a class="code" href="classllvm_1_1MSP430InstPrinter.html#ac4abbabeccbfd1ccd5b34db04df6d1dd">00059</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1MSP430InstPrinter.html#ac4abbabeccbfd1ccd5b34db04df6d1dd">MSP430InstPrinter::printSrcMemOperand</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MCInst.html">MCInst</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>, <span class="keywordtype">unsigned</span> OpNo,
+<a name="l00060"></a>00060                                            <a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &O,
+<a name="l00061"></a>00061                                            <span class="keyword">const</span> <span class="keywordtype">char</span> *Modifier) {
+<a name="l00062"></a>00062   <span class="keyword">const</span> <a class="code" href="classllvm_1_1MCOperand.html">MCOperand</a> &Base = MI-><a class="code" href="classllvm_1_1MCInst.html#a82523248f1c8145141a026cf3e57cf48">getOperand</a>(OpNo);
+<a name="l00063"></a>00063   <span class="keyword">const</span> <a class="code" href="classllvm_1_1MCOperand.html">MCOperand</a> &Disp = MI-><a class="code" href="classllvm_1_1MCInst.html#a82523248f1c8145141a026cf3e57cf48">getOperand</a>(OpNo+1);
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065   <span class="comment">// Print displacement first</span>
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067   <span class="comment">// If the global address expression is a part of displacement field with a</span>
+<a name="l00068"></a>00068   <span class="comment">// register base, we should not emit any prefix symbol here, e.g.</span>
+<a name="l00069"></a>00069   <span class="comment">//   mov.w &foo, r1</span>
+<a name="l00070"></a>00070   <span class="comment">// vs</span>
+<a name="l00071"></a>00071   <span class="comment">//   mov.w glb(r1), r2</span>
+<a name="l00072"></a>00072   <span class="comment">// Otherwise (!) msp430-as will silently miscompile the output :(</span>
+<a name="l00073"></a>00073   <span class="keywordflow">if</span> (!Base.<a class="code" href="classllvm_1_1MCOperand.html#a291c2118315720369e2c74913435c835" title="getReg - Returns the register number.">getReg</a>())
+<a name="l00074"></a>00074     O << <span class="charliteral">'&'</span>;
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076   <span class="keywordflow">if</span> (Disp.<a class="code" href="classllvm_1_1MCOperand.html#aae789dd5c5d7cd72d506a2ee66a7053f">isExpr</a>())
+<a name="l00077"></a>00077     O << *Disp.<a class="code" href="classllvm_1_1MCOperand.html#a89ba9ada9753995d37920bd8a8c02662">getExpr</a>();
+<a name="l00078"></a>00078   <span class="keywordflow">else</span> {
+<a name="l00079"></a>00079     assert(Disp.<a class="code" href="classllvm_1_1MCOperand.html#a55eeb71ac0e60e12cb37f99e984bda81">isImm</a>() && <span class="stringliteral">"Expected immediate in displacement field"</span>);
+<a name="l00080"></a>00080     O << Disp.<a class="code" href="classllvm_1_1MCOperand.html#a650484333896fc7e8485cfa30f6d7ad5">getImm</a>();
+<a name="l00081"></a>00081   }
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083   <span class="comment">// Print register base field</span>
+<a name="l00084"></a>00084   <span class="keywordflow">if</span> (Base.<a class="code" href="classllvm_1_1MCOperand.html#a291c2118315720369e2c74913435c835" title="getReg - Returns the register number.">getReg</a>())
+<a name="l00085"></a>00085     O << <span class="charliteral">'('</span> << <a class="code" href="classllvm_1_1MSP430InstPrinter.html#abfcfdefe992bd107ec7870654a255188">getRegisterName</a>(Base.<a class="code" href="classllvm_1_1MCOperand.html#a291c2118315720369e2c74913435c835" title="getReg - Returns the register number.">getReg</a>()) << <span class="charliteral">')'</span>;
+<a name="l00086"></a>00086 }
+<a name="l00087"></a>00087 
+<a name="l00088"></a><a class="code" href="classllvm_1_1MSP430InstPrinter.html#a444903d7f5add8a2404c933d05581b3d">00088</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1MSP430InstPrinter.html#a444903d7f5add8a2404c933d05581b3d">MSP430InstPrinter::printCCOperand</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MCInst.html">MCInst</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>, <span class="keywordtype">unsigned</span> OpNo,
+<a name="l00089"></a>00089                                        <a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &O) {
+<a name="l00090"></a>00090   <span class="keywordtype">unsigned</span> <a class="code" href="namespacellvm_1_1MBlazeCC.html#aba42d64ed60fd2a2e8045b6d7f26958d">CC</a> = MI-><a class="code" href="classllvm_1_1MCInst.html#a82523248f1c8145141a026cf3e57cf48">getOperand</a>(OpNo).<a class="code" href="classllvm_1_1MCOperand.html#a650484333896fc7e8485cfa30f6d7ad5">getImm</a>();
+<a name="l00091"></a>00091 
+<a name="l00092"></a>00092   <span class="keywordflow">switch</span> (CC) {
+<a name="l00093"></a>00093   <span class="keywordflow">default</span>:
+<a name="l00094"></a>00094    <a class="code" href="ErrorHandling_8h.html#ace243f5c25697a1107cce46626b3dc94">llvm_unreachable</a>(<span class="stringliteral">"Unsupported CC code"</span>);
+<a name="l00095"></a>00095   <span class="keywordflow">case</span> <a class="code" href="namespaceMSP430CC.html#a6555a8cd40e2bd0785c314612cca2f78a9ab0abab4103760114641549115f27c7">MSP430CC::COND_E</a>:
+<a name="l00096"></a>00096    O << <span class="stringliteral">"eq"</span>;
+<a name="l00097"></a>00097    <span class="keywordflow">break</span>;
+<a name="l00098"></a>00098   <span class="keywordflow">case</span> <a class="code" href="namespaceMSP430CC.html#a6555a8cd40e2bd0785c314612cca2f78ad1e5320e97965e267a708091630eace9">MSP430CC::COND_NE</a>:
+<a name="l00099"></a>00099    O << <span class="stringliteral">"ne"</span>;
+<a name="l00100"></a>00100    <span class="keywordflow">break</span>;
+<a name="l00101"></a>00101   <span class="keywordflow">case</span> <a class="code" href="namespaceMSP430CC.html#a6555a8cd40e2bd0785c314612cca2f78adbc0037549976cc5edb58dfa29063cf6">MSP430CC::COND_HS</a>:
+<a name="l00102"></a>00102    O << <span class="stringliteral">"hs"</span>;
+<a name="l00103"></a>00103    <span class="keywordflow">break</span>;
+<a name="l00104"></a>00104   <span class="keywordflow">case</span> <a class="code" href="namespaceMSP430CC.html#a6555a8cd40e2bd0785c314612cca2f78a253097e246f7e0fa3b9ee88ff3187881">MSP430CC::COND_LO</a>:
+<a name="l00105"></a>00105    O << <span class="stringliteral">"lo"</span>;
+<a name="l00106"></a>00106    <span class="keywordflow">break</span>;
+<a name="l00107"></a>00107   <span class="keywordflow">case</span> <a class="code" href="namespaceMSP430CC.html#a6555a8cd40e2bd0785c314612cca2f78aa8b4478689447a25948aa540cd992e43">MSP430CC::COND_GE</a>:
+<a name="l00108"></a>00108    O << <span class="stringliteral">"ge"</span>;
+<a name="l00109"></a>00109    <span class="keywordflow">break</span>;
+<a name="l00110"></a>00110   <span class="keywordflow">case</span> <a class="code" href="namespaceMSP430CC.html#a6555a8cd40e2bd0785c314612cca2f78a332aebe24667c7f27b767cf8cba3c7a6">MSP430CC::COND_L</a>:
+<a name="l00111"></a>00111    O << <span class="charliteral">'l'</span>;
+<a name="l00112"></a>00112    <span class="keywordflow">break</span>;
+<a name="l00113"></a>00113   }
+<a name="l00114"></a>00114 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:36:16 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8h__dep__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8h__dep__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8h__dep__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8h__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8h__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8h__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8h__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,3 @@
+<map id="G" name="G">
+<area shape="rect" href="$MCInstPrinter_8h.html" title="llvm/MC/MCInstPrinter.h" alt="" coords="5,84,176,111"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8h__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8h__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8h__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430InstPrinter_8h__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+cd7dff9b220d02e770c9b82301058b4d
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430InstrInfo_8h__dep__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430InstrInfo_8h__dep__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430InstrInfo_8h__dep__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430InstrInfo_8h__dep__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,12 @@
+<map id="G" name="G">
+<area shape="rect" href="$MSP430AsmPrinter_8cpp.html" title="MSP430AsmPrinter.cpp" alt="" coords="5,161,176,188"/>
+<area shape="rect" href="$MSP430TargetMachine_8h.html" title="MSP430TargetMachine.h" alt="" coords="377,84,553,111"/>
+<area shape="rect" href="$MSP430InstrInfo_8cpp.html" title="MSP430InstrInfo.cpp" alt="" coords="200,161,352,188"/>
+<area shape="rect" href="$MSP430BranchSelector_8cpp.html" title="MSP430BranchSelector.cpp" alt="" coords="577,84,775,111"/>
+<area shape="rect" href="$MSP430FrameLowering_8cpp.html" title="MSP430FrameLowering.cpp" alt="" coords="799,84,993,111"/>
+<area shape="rect" href="$MSP430ISelDAGToDAG_8cpp.html" title="MSP430ISelDAGToDAG.cpp" alt="" coords="1227,161,1421,188"/>
+<area shape="rect" href="$MSP430ISelLowering_8cpp.html" title="MSP430ISelLowering.cpp" alt="" coords="376,161,555,188"/>
+<area shape="rect" href="$MSP430RegisterInfo_8cpp.html" title="MSP430RegisterInfo.cpp" alt="" coords="579,161,752,188"/>
+<area shape="rect" href="$MSP430SelectionDAGInfo_8cpp.html" title="MSP430SelectionDAGInfo.cpp" alt="" coords="776,161,987,188"/>
+<area shape="rect" href="$MSP430TargetMachine_8cpp.html" title="MSP430TargetMachine.cpp" alt="" coords="1011,161,1203,188"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430InstrInfo_8h__dep__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430InstrInfo_8h__dep__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430InstrInfo_8h__dep__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430InstrInfo_8h__dep__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+564ae376d2a9c11c47914c24cbeeaa16
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8cpp__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8cpp__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8cpp__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8cpp__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,9 @@
+<map id="G" name="G">
+<area shape="rect" href="$MSP430MCAsmInfo_8h.html" title="MSP430MCAsmInfo.h" alt="" coords="545,84,703,111"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="861,84,1011,111"/>
+<area shape="rect" href="$MCAsmInfo_8h.html" title="llvm/MC/MCAsmInfo.h" alt="" coords="369,161,529,188"/>
+<area shape="rect" href="$MachineLocation_8h.html" title="llvm/MC/MachineLocation.h" alt="" coords="5,239,200,265"/>
+<area shape="rect" href="$MCDirectives_8h.html" title="llvm/MC/MCDirectives.h" alt="" coords="224,239,395,265"/>
+<area shape="rect" href="$type__traits_8h.html" title="llvm/Support/type_traits.h" alt="" coords="673,161,860,188"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="595,239,779,265"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+ed317a7551880f67a67fa5c7db056158
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8cpp__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8cpp__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8cpp__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8h__dep__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8h__dep__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8h__dep__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8h__dep__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,4 @@
+<map id="G" name="G">
+<area shape="rect" href="$MSP430MCAsmInfo_8cpp.html" title="MSP430MCAsmInfo.cpp" alt="" coords="5,84,176,111"/>
+<area shape="rect" href="$MSP430MCTargetDesc_8cpp.html" title="MSP430MCTargetDesc.cpp" alt="" coords="200,84,392,111"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8h__dep__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8h__dep__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8h__dep__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430MCAsmInfo_8h__dep__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+d0bbbb405ae94bb7388fe91b15428d0e
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8cpp__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8cpp__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8cpp__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MSP430MCInstLower.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_8a55ec9894173378e0d08f27f306eeee.html">Target</a>      </li>
+      <li class="navelem"><a class="el" href="dir_602b31a765eb4e3038b3d345fb70f8b8.html">MSP430</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">MSP430MCInstLower.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="Compiler_8h_source.html">llvm/Support/Compiler.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for MSP430MCInstLower.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="MSP430MCInstLower_8h__incl.png" border="0" usemap="#MSP430MCInstLower_8h" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div><div class="textblock"><div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dyncontent">
+<div class="center"><img src="MSP430MCInstLower_8h__dep__incl.png" border="0" usemap="#MSP430MCInstLower_8hdep" alt=""/></div>
+<!-- MAP 1 -->
+</div>
+</div>
+<p><a href="MSP430MCInstLower_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1MSP430MCInstLower.html">llvm::MSP430MCInstLower</a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html">llvm</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>List of target independent CodeGen pass IDs. </p>
+<br/></td></tr>
+</table>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:36 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,9 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MSP430MCInstLower.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430MCInstLower_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MSP430MCInstLower.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_8a55ec9894173378e0d08f27f306eeee.html">Target</a>      </li>
+      <li class="navelem"><a class="el" href="dir_602b31a765eb4e3038b3d345fb70f8b8.html">MSP430</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MSP430MCInstLower.h</div>  </div>
+</div>
+<div class="contents">
+<a href="MSP430MCInstLower_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- MSP430MCInstLower.h - Lower MachineInstr to MCInst ------*- C++ -*-===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 <span class="preprocessor">#ifndef MSP430_MCINSTLOWER_H</span>
+<a name="l00011"></a>00011 <span class="preprocessor"></span><span class="preprocessor">#define MSP430_MCINSTLOWER_H</span>
+<a name="l00012"></a>00012 <span class="preprocessor"></span>
+<a name="l00013"></a>00013 <span class="preprocessor">#include "<a class="code" href="Compiler_8h.html">llvm/Support/Compiler.h</a>"</span>
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 <span class="keyword">namespace </span>llvm {
+<a name="l00016"></a>00016   <span class="keyword">class </span>AsmPrinter;
+<a name="l00017"></a>00017   <span class="keyword">class </span>MCContext;
+<a name="l00018"></a>00018   <span class="keyword">class </span>MCInst;
+<a name="l00019"></a>00019   <span class="keyword">class </span>MCOperand;
+<a name="l00020"></a>00020   <span class="keyword">class </span>MCSymbol;
+<a name="l00021"></a>00021   <span class="keyword">class </span><a class="code" href="MBlazeMCCodeEmitter_8cpp.html#a620a0d6a5ef3ff7243ee978285a6f3db">MachineInstr</a>;
+<a name="l00022"></a>00022   <span class="keyword">class </span>MachineModuleInfoMachO;
+<a name="l00023"></a>00023   <span class="keyword">class </span>MachineOperand;
+<a name="l00024"></a>00024 <span class="comment"></span>
+<a name="l00025"></a>00025 <span class="comment">  /// MSP430MCInstLower - This class is used to lower an MachineInstr</span>
+<a name="l00026"></a>00026 <span class="comment">  /// into an MCInst.</span>
+<a name="l00027"></a><a class="code" href="classllvm_1_1MSP430MCInstLower.html">00027</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="Compiler_8h.html#a662e21bcce5c9c71b6cc511fa04f900f">LLVM_LIBRARY_VISIBILITY</a> <a class="code" href="classllvm_1_1MSP430MCInstLower.html">MSP430MCInstLower</a> {
+<a name="l00028"></a>00028   <a class="code" href="classllvm_1_1MCContext.html">MCContext</a> &Ctx;
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030   <a class="code" href="classllvm_1_1AsmPrinter.html">AsmPrinter</a> &<a class="code" href="AliasSetTracker_8cpp.html#a2018816b3a05f95da1c51e72c2c50d6f">Printer</a>;
+<a name="l00031"></a>00031 <span class="keyword">public</span>:
+<a name="l00032"></a><a class="code" href="classllvm_1_1MSP430MCInstLower.html#ad77eb512a89d5c9cb62ee914963b7e66">00032</a>   <a class="code" href="classllvm_1_1MSP430MCInstLower.html">MSP430MCInstLower</a>(<a class="code" href="classllvm_1_1MCContext.html">MCContext</a> &ctx, <a class="code" href="classllvm_1_1AsmPrinter.html">AsmPrinter</a> &printer)
+<a name="l00033"></a>00033     : Ctx(ctx), <a class="code" href="AliasSetTracker_8cpp.html#a2018816b3a05f95da1c51e72c2c50d6f">Printer</a>(printer) {}
+<a name="l00034"></a>00034   <span class="keywordtype">void</span> Lower(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>, <a class="code" href="classllvm_1_1MCInst.html">MCInst</a> &OutMI) <span class="keyword">const</span>;
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036   <a class="code" href="classllvm_1_1MCOperand.html">MCOperand</a> LowerSymbolOperand(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO, <a class="code" href="classllvm_1_1MCSymbol.html">MCSymbol</a> *Sym) <span class="keyword">const</span>;
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038   <a class="code" href="classllvm_1_1MCSymbol.html">MCSymbol</a> *GetGlobalAddressSymbol(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO) <span class="keyword">const</span>;
+<a name="l00039"></a>00039   <a class="code" href="classllvm_1_1MCSymbol.html">MCSymbol</a> *GetExternalSymbolSymbol(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO) <span class="keyword">const</span>;
+<a name="l00040"></a>00040   <a class="code" href="classllvm_1_1MCSymbol.html">MCSymbol</a> *GetJumpTableSymbol(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO) <span class="keyword">const</span>;
+<a name="l00041"></a>00041   <a class="code" href="classllvm_1_1MCSymbol.html">MCSymbol</a> *GetConstantPoolIndexSymbol(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO) <span class="keyword">const</span>;
+<a name="l00042"></a>00042   <a class="code" href="classllvm_1_1MCSymbol.html">MCSymbol</a> *GetBlockAddressSymbol(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO) <span class="keyword">const</span>;
+<a name="l00043"></a>00043 };
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 }
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:36:16 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430MCTargetDesc_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430MCTargetDesc_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430MCTargetDesc_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430MCTargetDesc_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,138 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MSP430MCTargetDesc.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_8a55ec9894173378e0d08f27f306eeee.html">Target</a>      </li>
+      <li class="navelem"><a class="el" href="dir_602b31a765eb4e3038b3d345fb70f8b8.html">MSP430</a>      </li>
+      <li class="navelem"><a class="el" href="dir_d7e2d487ef1c130831fd013dcc7a3310.html">MCTargetDesc</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a> |
+<a href="#define-members">Defines</a> |
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">MSP430MCTargetDesc.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "MSP430GenRegisterInfo.inc"</code><br/>
+<code>#include "MSP430GenInstrInfo.inc"</code><br/>
+<code>#include "MSP430GenSubtargetInfo.inc"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for MSP430MCTargetDesc.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="MSP430MCTargetDesc_8h__incl.png" border="0" usemap="#MSP430MCTargetDesc_8h" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div><div class="textblock"><div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dyncontent">
+<div class="center"><img src="MSP430MCTargetDesc_8h__dep__incl.png" border="0" usemap="#MSP430MCTargetDesc_8hdep" alt=""/></div>
+<!-- MAP 1 -->
+</div>
+</div>
+<p><a href="MSP430MCTargetDesc_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html">llvm</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>List of target independent CodeGen pass IDs. </p>
+<br/></td></tr>
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="MSP430MCTargetDesc_8h.html#a08a185753458ada847ed2d41b47ac1d1">GET_REGINFO_ENUM</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="MSP430MCTargetDesc_8h.html#a2433e9e503264e8ca019761dad9d06d1">GET_INSTRINFO_ENUM</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="MSP430MCTargetDesc_8h.html#ae8e5d5d8b20c7c3550c60ac4a04e3c64">GET_SUBTARGETINFO_ENUM</a></td></tr>
+<tr><td colspan="2"><h2><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classllvm_1_1Target.html">Target</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a38400e734dbd2b3634edf5a8ba62c663">llvm::TheMSP430Target</a></td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a2433e9e503264e8ca019761dad9d06d1"></a><!-- doxytag: member="MSP430MCTargetDesc.h::GET_INSTRINFO_ENUM" ref="a2433e9e503264e8ca019761dad9d06d1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GET_INSTRINFO_ENUM</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MSP430MCTargetDesc_8h_source.html#l00030">30</a> of file <a class="el" href="MSP430MCTargetDesc_8h_source.html">MSP430MCTargetDesc.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a08a185753458ada847ed2d41b47ac1d1"></a><!-- doxytag: member="MSP430MCTargetDesc.h::GET_REGINFO_ENUM" ref="a08a185753458ada847ed2d41b47ac1d1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GET_REGINFO_ENUM</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MSP430MCTargetDesc_8h_source.html#l00026">26</a> of file <a class="el" href="MSP430MCTargetDesc_8h_source.html">MSP430MCTargetDesc.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae8e5d5d8b20c7c3550c60ac4a04e3c64"></a><!-- doxytag: member="MSP430MCTargetDesc.h::GET_SUBTARGETINFO_ENUM" ref="ae8e5d5d8b20c7c3550c60ac4a04e3c64" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GET_SUBTARGETINFO_ENUM</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MSP430MCTargetDesc_8h_source.html#l00033">33</a> of file <a class="el" href="MSP430MCTargetDesc_8h_source.html">MSP430MCTargetDesc.h</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:36 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430MachineFunctionInfo_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430MachineFunctionInfo_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430MachineFunctionInfo_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430MachineFunctionInfo_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MSP430MachineFunctionInfo.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_8a55ec9894173378e0d08f27f306eeee.html">Target</a>      </li>
+      <li class="navelem"><a class="el" href="dir_602b31a765eb4e3038b3d345fb70f8b8.html">MSP430</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MSP430MachineFunctionInfo.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="MSP430MachineFunctionInfo_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- MSP430MachineFuctionInfo.cpp - MSP430 machine function info -------===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 <span class="preprocessor">#include "<a class="code" href="MSP430MachineFunctionInfo_8h.html">MSP430MachineFunctionInfo.h</a>"</span>
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 <span class="keyword">using namespace </span>llvm;
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="keywordtype">void</span> MSP430MachineFunctionInfo::anchor() { }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:36:16 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430MachineFunctionInfo_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430MachineFunctionInfo_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430MachineFunctionInfo_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430MachineFunctionInfo_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,151 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MSP430MachineFunctionInfo.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/CodeGen/MachineFunction.h",height=0.2,width=0.4,color="black",URL="$MachineFunction_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="black",URL="$MachineBasicBlock_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="black",URL="$MachineInstr_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/CodeGen/MachineOperand.h",height=0.2,width=0.4,color="black",URL="$MachineOperand_8h.html"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/MC/MCInstrDesc.h",height=0.2,width=0.4,color="black",URL="$MCInstrDesc_8h.html"];
+  Node12 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/Target/TargetOpcodes.h",height=0.2,width=0.4,color="black",URL="$TargetOpcodes_8h.html"];
+  Node4 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="black",URL="$ArrayRef_8h.html"];
+  Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node16 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node19 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="black",URL="$ilist_8h.html"];
+  Node27 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/ADT/ilist_node.h",height=0.2,width=0.4,color="black",URL="$ilist__node_8h.html"];
+  Node4 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="black",URL="$STLExtras_8h.html"];
+  Node29 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node29 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node31 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node31 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node31 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node34 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node35 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/InlineAsm.h",height=0.2,width=0.4,color="black",URL="$InlineAsm_8h.html"];
+  Node36 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/Value.h",height=0.2,width=0.4,color="black",URL="$Value_8h.html"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Use.h",height=0.2,width=0.4,color="black",URL="$Use_8h.html"];
+  Node38 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="black",URL="$PointerIntPair_8h.html"];
+  Node39 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/Support/Casting.h",height=0.2,width=0.4,color="black",URL="$Casting_8h.html"];
+  Node40 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node4 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="black",URL="$Allocator_8h.html"];
+  Node43 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="black",URL="$MathExtras_8h.html"];
+  Node44 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/Support/SwapByteOrder.h",height=0.2,width=0.4,color="black",URL="$SwapByteOrder_8h.html"];
+  Node45 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Support/Recycler.h",height=0.2,width=0.4,color="black",URL="$Recycler_8h.html"];
+  Node46 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node47 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430RegisterInfo_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430RegisterInfo_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430RegisterInfo_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430RegisterInfo_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MSP430RegisterInfo.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_8a55ec9894173378e0d08f27f306eeee.html">Target</a>      </li>
+      <li class="navelem"><a class="el" href="dir_602b31a765eb4e3038b3d345fb70f8b8.html">MSP430</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Defines</a>  </div>
+  <div class="headertitle">
+<div class="title">MSP430RegisterInfo.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="MSP430RegisterInfo_8h_source.html">MSP430RegisterInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="MSP430_8h_source.html">MSP430.h</a>"</code><br/>
+<code>#include "<a class="el" href="MSP430MachineFunctionInfo_8h_source.html">MSP430MachineFunctionInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="MSP430TargetMachine_8h_source.html">MSP430TargetMachine.h</a>"</code><br/>
+<code>#include "<a class="el" href="Function_8h_source.html">llvm/Function.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineFrameInfo_8h_source.html">llvm/CodeGen/MachineFrameInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineFunction_8h_source.html">llvm/CodeGen/MachineFunction.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineInstrBuilder_8h_source.html">llvm/CodeGen/MachineInstrBuilder.h</a>"</code><br/>
+<code>#include "<a class="el" href="Target_2TargetMachine_8h_source.html">llvm/Target/TargetMachine.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetOptions_8h_source.html">llvm/Target/TargetOptions.h</a>"</code><br/>
+<code>#include "<a class="el" href="BitVector_8h_source.html">llvm/ADT/BitVector.h</a>"</code><br/>
+<code>#include "<a class="el" href="ErrorHandling_8h_source.html">llvm/Support/ErrorHandling.h</a>"</code><br/>
+<code>#include "MSP430GenRegisterInfo.inc"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for MSP430RegisterInfo.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="MSP430RegisterInfo_8cpp__incl.png" border="0" usemap="#MSP430RegisterInfo_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="MSP430RegisterInfo_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="MSP430RegisterInfo_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">DEBUG_TYPE</a>   "msp430-reg-<a class="el" href="LazyValueInfo_8cpp.html#ad7f64bcc544dcefb2e068282af1c549d">info</a>"</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="MSP430RegisterInfo_8cpp.html#a13b7359d3501128c4c130fd13756facc">GET_REGINFO_TARGET_DESC</a></td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ad78e062f62e0d6e453941fb4ca843e4d"></a><!-- doxytag: member="MSP430RegisterInfo.cpp::DEBUG_TYPE" ref="ad78e062f62e0d6e453941fb4ca843e4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DEBUG_TYPE   "msp430-reg-<a class="el" href="LazyValueInfo_8cpp.html#ad7f64bcc544dcefb2e068282af1c549d">info</a>"</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MSP430RegisterInfo_8cpp_source.html#l00014">14</a> of file <a class="el" href="MSP430RegisterInfo_8cpp_source.html">MSP430RegisterInfo.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a13b7359d3501128c4c130fd13756facc"></a><!-- doxytag: member="MSP430RegisterInfo.cpp::GET_REGINFO_TARGET_DESC" ref="a13b7359d3501128c4c130fd13756facc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GET_REGINFO_TARGET_DESC</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MSP430RegisterInfo_8cpp_source.html#l00029">29</a> of file <a class="el" href="MSP430RegisterInfo_8cpp_source.html">MSP430RegisterInfo.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:36 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430RegisterInfo_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430RegisterInfo_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430RegisterInfo_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430RegisterInfo_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,283 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MSP430RegisterInfo.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_8a55ec9894173378e0d08f27f306eeee.html">Target</a>      </li>
+      <li class="navelem"><a class="el" href="dir_602b31a765eb4e3038b3d345fb70f8b8.html">MSP430</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MSP430RegisterInfo.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="MSP430RegisterInfo_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- MSP430RegisterInfo.cpp - MSP430 Register Information --------------===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file contains the MSP430 implementation of the TargetRegisterInfo class.</span>
+<a name="l00011"></a>00011 <span class="comment">//</span>
+<a name="l00012"></a>00012 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00013"></a>00013 
+<a name="l00014"></a><a class="code" href="MSP430RegisterInfo_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">00014</a> <span class="preprocessor">#define DEBUG_TYPE "msp430-reg-info"</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="MSP430RegisterInfo_8h.html">MSP430RegisterInfo.h</a>"</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="MSP430_8h.html">MSP430.h</a>"</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="MSP430MachineFunctionInfo_8h.html">MSP430MachineFunctionInfo.h</a>"</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include "<a class="code" href="MSP430TargetMachine_8h.html">MSP430TargetMachine.h</a>"</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="Function_8h.html">llvm/Function.h</a>"</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="MachineFrameInfo_8h.html">llvm/CodeGen/MachineFrameInfo.h</a>"</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="MachineFunction_8h.html">llvm/CodeGen/MachineFunction.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="MachineInstrBuilder_8h.html">llvm/CodeGen/MachineInstrBuilder.h</a>"</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="Target_2TargetMachine_8h.html">llvm/Target/TargetMachine.h</a>"</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="TargetOptions_8h.html">llvm/Target/TargetOptions.h</a>"</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="BitVector_8h.html">llvm/ADT/BitVector.h</a>"</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="ErrorHandling_8h.html">llvm/Support/ErrorHandling.h</a>"</span>
+<a name="l00028"></a>00028 
+<a name="l00029"></a><a class="code" href="MSP430RegisterInfo_8cpp.html#a13b7359d3501128c4c130fd13756facc">00029</a> <span class="preprocessor">#define GET_REGINFO_TARGET_DESC</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#include "MSP430GenRegisterInfo.inc"</span>
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 <span class="keyword">using namespace </span>llvm;
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 <span class="comment">// FIXME: Provide proper call frame setup / destroy opcodes.</span>
+<a name="l00035"></a><a class="code" href="structllvm_1_1MSP430RegisterInfo.html#a086c2d6436925945adfbbe4122d4a937">00035</a> <a class="code" href="structllvm_1_1MSP430RegisterInfo.html#a086c2d6436925945adfbbe4122d4a937">MSP430RegisterInfo::MSP430RegisterInfo</a>(<a class="code" href="classllvm_1_1MSP430TargetMachine.html">MSP430TargetMachine</a> &tm,
+<a name="l00036"></a>00036                                        <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetInstrInfo.html">TargetInstrInfo</a> &tii)
+<a name="l00037"></a>00037   : <a class="code" href="classMSP430GenRegisterInfo.html">MSP430GenRegisterInfo</a>(MSP430::PCW), TM(tm), TII(tii) {
+<a name="l00038"></a>00038   StackAlign = TM.<a class="code" href="classllvm_1_1MSP430TargetMachine.html#acd3ef03a7d4e29aa6d38dcd36e43cd54">getFrameLowering</a>()-><a class="code" href="classllvm_1_1TargetFrameLowering.html#a360555ed6db3b28a33fa5449a0335f19">getStackAlignment</a>();
+<a name="l00039"></a>00039 }
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041 <span class="keyword">const</span> uint16_t*
+<a name="l00042"></a><a class="code" href="structllvm_1_1MSP430RegisterInfo.html#a51eaa72c22e5b15f8b2dabd4ac6613e3">00042</a> <a class="code" href="structllvm_1_1MSP430RegisterInfo.html#a51eaa72c22e5b15f8b2dabd4ac6613e3" title="Code Generation virtual methods...">MSP430RegisterInfo::getCalleeSavedRegs</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> *MF)<span class="keyword"> const </span>{
+<a name="l00043"></a>00043   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetFrameLowering.html">TargetFrameLowering</a> *TFI = MF-><a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>().<a class="code" href="classllvm_1_1TargetMachine.html#a02aa9d4cbd6ffcc70dfe1143ec0995ef">getFrameLowering</a>();
+<a name="l00044"></a>00044   <span class="keyword">const</span> <a class="code" href="classllvm_1_1Function.html">Function</a>* <a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a> = MF-><a class="code" href="classllvm_1_1MachineFunction.html#ad784a6594990530bffb2018aeeed56f3">getFunction</a>();
+<a name="l00045"></a>00045   <span class="keyword">static</span> <span class="keyword">const</span> uint16_t CalleeSavedRegs[] = {
+<a name="l00046"></a>00046     MSP430::FPW, MSP430::R5W, MSP430::R6W, MSP430::R7W,
+<a name="l00047"></a>00047     MSP430::R8W, MSP430::R9W, MSP430::R10W, MSP430::R11W,
+<a name="l00048"></a>00048     0
+<a name="l00049"></a>00049   };
+<a name="l00050"></a>00050   <span class="keyword">static</span> <span class="keyword">const</span> uint16_t CalleeSavedRegsFP[] = {
+<a name="l00051"></a>00051     MSP430::R5W, MSP430::R6W, MSP430::R7W,
+<a name="l00052"></a>00052     MSP430::R8W, MSP430::R9W, MSP430::R10W, MSP430::R11W,
+<a name="l00053"></a>00053     0
+<a name="l00054"></a>00054   };
+<a name="l00055"></a>00055   <span class="keyword">static</span> <span class="keyword">const</span> uint16_t CalleeSavedRegsIntr[] = {
+<a name="l00056"></a>00056     MSP430::FPW,  MSP430::R5W,  MSP430::R6W,  MSP430::R7W,
+<a name="l00057"></a>00057     MSP430::R8W,  MSP430::R9W,  MSP430::R10W, MSP430::R11W,
+<a name="l00058"></a>00058     MSP430::R12W, MSP430::R13W, MSP430::R14W, MSP430::R15W,
+<a name="l00059"></a>00059     0
+<a name="l00060"></a>00060   };
+<a name="l00061"></a>00061   <span class="keyword">static</span> <span class="keyword">const</span> uint16_t CalleeSavedRegsIntrFP[] = {
+<a name="l00062"></a>00062     MSP430::R5W,  MSP430::R6W,  MSP430::R7W,
+<a name="l00063"></a>00063     MSP430::R8W,  MSP430::R9W,  MSP430::R10W, MSP430::R11W,
+<a name="l00064"></a>00064     MSP430::R12W, MSP430::R13W, MSP430::R14W, MSP430::R15W,
+<a name="l00065"></a>00065     0
+<a name="l00066"></a>00066   };
+<a name="l00067"></a>00067 
+<a name="l00068"></a>00068   <span class="keywordflow">if</span> (TFI-><a class="code" href="classllvm_1_1TargetFrameLowering.html#a59182730437bdb0a45a274261a7ea84b">hasFP</a>(*MF))
+<a name="l00069"></a>00069     <span class="keywordflow">return</span> (F-><a class="code" href="classllvm_1_1Function.html#af4d5ada526cdf057f5f29047e058187d">getCallingConv</a>() == <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974ac6355efbcea63774ceca1dfa7b237d42" title="MSP430_INTR - Calling convention used for MSP430 interrupt routines.">CallingConv::MSP430_INTR</a> ?
+<a name="l00070"></a>00070             CalleeSavedRegsIntrFP : CalleeSavedRegsFP);
+<a name="l00071"></a>00071   <span class="keywordflow">else</span>
+<a name="l00072"></a>00072     <span class="keywordflow">return</span> (F-><a class="code" href="classllvm_1_1Function.html#af4d5ada526cdf057f5f29047e058187d">getCallingConv</a>() == <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974ac6355efbcea63774ceca1dfa7b237d42" title="MSP430_INTR - Calling convention used for MSP430 interrupt routines.">CallingConv::MSP430_INTR</a> ?
+<a name="l00073"></a>00073             CalleeSavedRegsIntr : CalleeSavedRegs);
+<a name="l00074"></a>00074 
+<a name="l00075"></a>00075 }
+<a name="l00076"></a>00076 
+<a name="l00077"></a><a class="code" href="structllvm_1_1MSP430RegisterInfo.html#aa20ff6626aef5be72a2ab11955b4354f">00077</a> <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> <a class="code" href="structllvm_1_1MSP430RegisterInfo.html#aa20ff6626aef5be72a2ab11955b4354f">MSP430RegisterInfo::getReservedRegs</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF)<span class="keyword"> const </span>{
+<a name="l00078"></a>00078   <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> Reserved(getNumRegs());
+<a name="l00079"></a>00079   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetFrameLowering.html">TargetFrameLowering</a> *TFI = MF.<a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>().<a class="code" href="classllvm_1_1TargetMachine.html#a02aa9d4cbd6ffcc70dfe1143ec0995ef">getFrameLowering</a>();
+<a name="l00080"></a>00080 
+<a name="l00081"></a>00081   <span class="comment">// Mark 4 special registers with subregisters as reserved.</span>
+<a name="l00082"></a>00082   Reserved.<a class="code" href="classllvm_1_1BitVector.html#a1964207fae81f04966b2a9dcfc21cf7b">set</a>(MSP430::PCB);
+<a name="l00083"></a>00083   Reserved.<a class="code" href="classllvm_1_1BitVector.html#a1964207fae81f04966b2a9dcfc21cf7b">set</a>(MSP430::SPB);
+<a name="l00084"></a>00084   Reserved.<a class="code" href="classllvm_1_1BitVector.html#a1964207fae81f04966b2a9dcfc21cf7b">set</a>(MSP430::SRB);
+<a name="l00085"></a>00085   Reserved.<a class="code" href="classllvm_1_1BitVector.html#a1964207fae81f04966b2a9dcfc21cf7b">set</a>(MSP430::CGB);
+<a name="l00086"></a>00086   Reserved.<a class="code" href="classllvm_1_1BitVector.html#a1964207fae81f04966b2a9dcfc21cf7b">set</a>(MSP430::PCW);
+<a name="l00087"></a>00087   Reserved.<a class="code" href="classllvm_1_1BitVector.html#a1964207fae81f04966b2a9dcfc21cf7b">set</a>(MSP430::SPW);
+<a name="l00088"></a>00088   Reserved.<a class="code" href="classllvm_1_1BitVector.html#a1964207fae81f04966b2a9dcfc21cf7b">set</a>(MSP430::SRW);
+<a name="l00089"></a>00089   Reserved.<a class="code" href="classllvm_1_1BitVector.html#a1964207fae81f04966b2a9dcfc21cf7b">set</a>(MSP430::CGW);
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091   <span class="comment">// Mark frame pointer as reserved if needed.</span>
+<a name="l00092"></a>00092   <span class="keywordflow">if</span> (TFI-><a class="code" href="classllvm_1_1TargetFrameLowering.html#a59182730437bdb0a45a274261a7ea84b">hasFP</a>(MF))
+<a name="l00093"></a>00093     Reserved.<a class="code" href="classllvm_1_1BitVector.html#a1964207fae81f04966b2a9dcfc21cf7b">set</a>(MSP430::FPW);
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095   <span class="keywordflow">return</span> Reserved;
+<a name="l00096"></a>00096 }
+<a name="l00097"></a>00097 
+<a name="l00098"></a>00098 <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterClass.html">TargetRegisterClass</a> *
+<a name="l00099"></a><a class="code" href="structllvm_1_1MSP430RegisterInfo.html#a9e1a58e7029690fd51bd4c497fdb72b6">00099</a> <a class="code" href="structllvm_1_1MSP430RegisterInfo.html#a9e1a58e7029690fd51bd4c497fdb72b6">MSP430RegisterInfo::getPointerRegClass</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF, <span class="keywordtype">unsigned</span> <a class="code" href="namespacellvm_1_1EngineKind.html#a9df47239a42cd9621ac26d9ecbd57441">Kind</a>)<span class="keyword"></span>
+<a name="l00100"></a>00100 <span class="keyword">                                                                         const </span>{
+<a name="l00101"></a>00101   <span class="keywordflow">return</span> &MSP430::GR16RegClass;
+<a name="l00102"></a>00102 }
+<a name="l00103"></a>00103 
+<a name="l00104"></a>00104 <span class="keywordtype">void</span> <a class="code" href="structllvm_1_1MSP430RegisterInfo.html#ac378d52052bb0803d9caae940ce64e78">MSP430RegisterInfo::</a>
+<a name="l00105"></a><a class="code" href="structllvm_1_1MSP430RegisterInfo.html#ac378d52052bb0803d9caae940ce64e78">00105</a> <a class="code" href="structllvm_1_1MSP430RegisterInfo.html#ac378d52052bb0803d9caae940ce64e78">eliminateCallFramePseudoInstr</a>(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF, <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> &MBB,
+<a name="l00106"></a>00106                               <a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)<span class="keyword"> const </span>{
+<a name="l00107"></a>00107   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetFrameLowering.html">TargetFrameLowering</a> *TFI = MF.<a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>().<a class="code" href="classllvm_1_1TargetMachine.html#a02aa9d4cbd6ffcc70dfe1143ec0995ef">getFrameLowering</a>();
+<a name="l00108"></a>00108 
+<a name="l00109"></a>00109   <span class="keywordflow">if</span> (!TFI-><a class="code" href="classllvm_1_1TargetFrameLowering.html#a8404705eb7a27e437ac51ca3730bfd7c">hasReservedCallFrame</a>(MF)) {
+<a name="l00110"></a>00110     <span class="comment">// If the stack pointer can be changed after prologue, turn the</span>
+<a name="l00111"></a>00111     <span class="comment">// adjcallstackup instruction into a 'sub SPW, <amt>' and the</span>
+<a name="l00112"></a>00112     <span class="comment">// adjcallstackdown instruction into 'add SPW, <amt>'</span>
+<a name="l00113"></a>00113     <span class="comment">// TODO: consider using push / pop instead of sub + store / add</span>
+<a name="l00114"></a>00114     <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *Old = <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00115"></a>00115     uint64_t Amount = Old-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(0).<a class="code" href="classllvm_1_1MachineOperand.html#a7059d68a29d5ecfb37623ab45cdb4e8d">getImm</a>();
+<a name="l00116"></a>00116     <span class="keywordflow">if</span> (Amount != 0) {
+<a name="l00117"></a>00117       <span class="comment">// We need to keep the stack aligned properly.  To do this, we round the</span>
+<a name="l00118"></a>00118       <span class="comment">// amount of space needed for the outgoing arguments up to the next</span>
+<a name="l00119"></a>00119       <span class="comment">// alignment boundary.</span>
+<a name="l00120"></a>00120       Amount = (Amount+StackAlign-1)/StackAlign*StackAlign;
+<a name="l00121"></a>00121 
+<a name="l00122"></a>00122       <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *New = 0;
+<a name="l00123"></a>00123       <span class="keywordflow">if</span> (Old-><a class="code" href="classllvm_1_1MachineInstr.html#a242314c0ae0147d1a7ef54c9bc312616">getOpcode</a>() == TII.<a class="code" href="classllvm_1_1TargetInstrInfo.html#a03fe3281573d3aea69ae33de8c3bb4b6">getCallFrameSetupOpcode</a>()) {
+<a name="l00124"></a>00124         New = <a class="code" href="namespacellvm.html#a980570dc1410d4ef53806f82028ca381">BuildMI</a>(MF, Old-><a class="code" href="classllvm_1_1MachineInstr.html#a5ca4af2a257043145ad650eafb4402f9">getDebugLoc</a>(),
+<a name="l00125"></a>00125                       TII.<a class="code" href="classllvm_1_1MCInstrInfo.html#ab16f5a81fccfe4b7f645ba5a74ffad02">get</a>(MSP430::SUB16ri), MSP430::SPW)
+<a name="l00126"></a>00126           .addReg(MSP430::SPW).<a class="code" href="classllvm_1_1MachineInstrBuilder.html#a9f1fae6a5dbb6e378ca85df1fded8515">addImm</a>(Amount);
+<a name="l00127"></a>00127       } <span class="keywordflow">else</span> {
+<a name="l00128"></a>00128         assert(Old-><a class="code" href="classllvm_1_1MachineInstr.html#a242314c0ae0147d1a7ef54c9bc312616">getOpcode</a>() == TII.<a class="code" href="classllvm_1_1TargetInstrInfo.html#a1057d0ad3ec077901aff0251d1c0811b">getCallFrameDestroyOpcode</a>());
+<a name="l00129"></a>00129         <span class="comment">// factor out the amount the callee already popped.</span>
+<a name="l00130"></a>00130         uint64_t CalleeAmt = Old-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(1).<a class="code" href="classllvm_1_1MachineOperand.html#a7059d68a29d5ecfb37623ab45cdb4e8d">getImm</a>();
+<a name="l00131"></a>00131         Amount -= CalleeAmt;
+<a name="l00132"></a>00132         <span class="keywordflow">if</span> (Amount)
+<a name="l00133"></a>00133           New = <a class="code" href="namespacellvm.html#a980570dc1410d4ef53806f82028ca381">BuildMI</a>(MF, Old-><a class="code" href="classllvm_1_1MachineInstr.html#a5ca4af2a257043145ad650eafb4402f9">getDebugLoc</a>(),
+<a name="l00134"></a>00134                         TII.<a class="code" href="classllvm_1_1MCInstrInfo.html#ab16f5a81fccfe4b7f645ba5a74ffad02">get</a>(MSP430::ADD16ri), MSP430::SPW)
+<a name="l00135"></a>00135             .addReg(MSP430::SPW).<a class="code" href="classllvm_1_1MachineInstrBuilder.html#a9f1fae6a5dbb6e378ca85df1fded8515">addImm</a>(Amount);
+<a name="l00136"></a>00136       }
+<a name="l00137"></a>00137 
+<a name="l00138"></a>00138       <span class="keywordflow">if</span> (New) {
+<a name="l00139"></a>00139         <span class="comment">// The SRW implicit def is dead.</span>
+<a name="l00140"></a>00140         New-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(3).<a class="code" href="classllvm_1_1MachineOperand.html#a61a42c85bd86c6ca4554e27d33c3f798">setIsDead</a>();
+<a name="l00141"></a>00141 
+<a name="l00142"></a>00142         <span class="comment">// Replace the pseudo instruction with a new instruction...</span>
+<a name="l00143"></a>00143         MBB.<a class="code" href="classllvm_1_1MachineBasicBlock.html#ad657517ec09c4e070fab95c2a9115853">insert</a>(I, New);
+<a name="l00144"></a>00144       }
+<a name="l00145"></a>00145     }
+<a name="l00146"></a>00146   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (I->getOpcode() == TII.<a class="code" href="classllvm_1_1TargetInstrInfo.html#a1057d0ad3ec077901aff0251d1c0811b">getCallFrameDestroyOpcode</a>()) {
+<a name="l00147"></a>00147     <span class="comment">// If we are performing frame pointer elimination and if the callee pops</span>
+<a name="l00148"></a>00148     <span class="comment">// something off the stack pointer, add it back.</span>
+<a name="l00149"></a>00149     <span class="keywordflow">if</span> (uint64_t CalleeAmt = I->getOperand(1).getImm()) {
+<a name="l00150"></a>00150       <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *Old = <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00151"></a>00151       <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *New =
+<a name="l00152"></a>00152         <a class="code" href="namespacellvm.html#a980570dc1410d4ef53806f82028ca381">BuildMI</a>(MF, Old-><a class="code" href="classllvm_1_1MachineInstr.html#a5ca4af2a257043145ad650eafb4402f9">getDebugLoc</a>(), TII.<a class="code" href="classllvm_1_1MCInstrInfo.html#ab16f5a81fccfe4b7f645ba5a74ffad02">get</a>(MSP430::SUB16ri),
+<a name="l00153"></a>00153                 MSP430::SPW).addReg(MSP430::SPW).<a class="code" href="classllvm_1_1MachineInstrBuilder.html#a9f1fae6a5dbb6e378ca85df1fded8515">addImm</a>(CalleeAmt);
+<a name="l00154"></a>00154       <span class="comment">// The SRW implicit def is dead.</span>
+<a name="l00155"></a>00155       New-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(3).<a class="code" href="classllvm_1_1MachineOperand.html#a61a42c85bd86c6ca4554e27d33c3f798">setIsDead</a>();
+<a name="l00156"></a>00156 
+<a name="l00157"></a>00157       MBB.<a class="code" href="classllvm_1_1MachineBasicBlock.html#ad657517ec09c4e070fab95c2a9115853">insert</a>(I, New);
+<a name="l00158"></a>00158     }
+<a name="l00159"></a>00159   }
+<a name="l00160"></a>00160 
+<a name="l00161"></a>00161   MBB.<a class="code" href="classllvm_1_1MachineBasicBlock.html#a537a9265c55392ab47d44954f27db538">erase</a>(I);
+<a name="l00162"></a>00162 }
+<a name="l00163"></a>00163 
+<a name="l00164"></a>00164 <span class="keywordtype">void</span>
+<a name="l00165"></a><a class="code" href="structllvm_1_1MSP430RegisterInfo.html#a0c1d7cc137efc3841f9443a81f25d412">00165</a> <a class="code" href="structllvm_1_1MSP430RegisterInfo.html#a0c1d7cc137efc3841f9443a81f25d412">MSP430RegisterInfo::eliminateFrameIndex</a>(<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> II,
+<a name="l00166"></a>00166                                         <span class="keywordtype">int</span> SPAdj, <a class="code" href="classllvm_1_1RegScavenger.html">RegScavenger</a> *RS)<span class="keyword"> const </span>{
+<a name="l00167"></a>00167   assert(SPAdj == 0 && <span class="stringliteral">"Unexpected"</span>);
+<a name="l00168"></a>00168 
+<a name="l00169"></a>00169   <span class="keywordtype">unsigned</span> i = 0;
+<a name="l00170"></a>00170   <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> &<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a> = *II;
+<a name="l00171"></a>00171   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> &MBB = *MI.<a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>();
+<a name="l00172"></a>00172   <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF = *MBB.<a class="code" href="classllvm_1_1MachineBasicBlock.html#af2e482ff2a9253ec6bc2285491496bd6">getParent</a>();
+<a name="l00173"></a>00173   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetFrameLowering.html">TargetFrameLowering</a> *TFI = MF.<a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>().<a class="code" href="classllvm_1_1TargetMachine.html#a02aa9d4cbd6ffcc70dfe1143ec0995ef">getFrameLowering</a>();
+<a name="l00174"></a>00174   <a class="code" href="classllvm_1_1DebugLoc.html">DebugLoc</a> dl = MI.<a class="code" href="classllvm_1_1MachineInstr.html#a5ca4af2a257043145ad650eafb4402f9">getDebugLoc</a>();
+<a name="l00175"></a>00175   <span class="keywordflow">while</span> (!MI.<a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i).<a class="code" href="classllvm_1_1MachineOperand.html#ab0d5ec413fa43a1e470dafb6cafda9b5" title="isFI - Tests if this is a MO_FrameIndex operand.">isFI</a>()) {
+<a name="l00176"></a>00176     ++i;
+<a name="l00177"></a>00177     assert(i < MI.<a class="code" href="classllvm_1_1MachineInstr.html#a7b5fe96d88954efc855e6c466207e535">getNumOperands</a>() && <span class="stringliteral">"Instr doesn't have FrameIndex operand!"</span>);
+<a name="l00178"></a>00178   }
+<a name="l00179"></a>00179 
+<a name="l00180"></a>00180   <span class="keywordtype">int</span> <a class="code" href="namespacellvm_1_1ISD.html#a22ea9cec080dd5f4f47ba234c2f59110a4b437632fd9b97dd36010d85eb363efe">FrameIndex</a> = MI.<a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i).<a class="code" href="classllvm_1_1MachineOperand.html#ac9485ae7d6fedd71ad4460f72c799c98">getIndex</a>();
+<a name="l00181"></a>00181 
+<a name="l00182"></a>00182   <span class="keywordtype">unsigned</span> BasePtr = (TFI-><a class="code" href="classllvm_1_1TargetFrameLowering.html#a59182730437bdb0a45a274261a7ea84b">hasFP</a>(MF) ? MSP430::FPW : MSP430::SPW);
+<a name="l00183"></a>00183   <span class="keywordtype">int</span> Offset = MF.<a class="code" href="classllvm_1_1MachineFunction.html#a4ad4295a88187ea1ae12ecfcfa18a70f">getFrameInfo</a>()-><a class="code" href="classllvm_1_1MachineFrameInfo.html#aefac52e417d31959e35868879aba672b">getObjectOffset</a>(FrameIndex);
+<a name="l00184"></a>00184 
+<a name="l00185"></a>00185   <span class="comment">// Skip the saved PC</span>
+<a name="l00186"></a>00186   Offset += 2;
+<a name="l00187"></a>00187 
+<a name="l00188"></a>00188   <span class="keywordflow">if</span> (!TFI-><a class="code" href="classllvm_1_1TargetFrameLowering.html#a59182730437bdb0a45a274261a7ea84b">hasFP</a>(MF))
+<a name="l00189"></a>00189     Offset += MF.<a class="code" href="classllvm_1_1MachineFunction.html#a4ad4295a88187ea1ae12ecfcfa18a70f">getFrameInfo</a>()-><a class="code" href="classllvm_1_1MachineFrameInfo.html#a34874094b3ba8b56fd68801250f77183">getStackSize</a>();
+<a name="l00190"></a>00190   <span class="keywordflow">else</span>
+<a name="l00191"></a>00191     Offset += 2; <span class="comment">// Skip the saved FPW</span>
+<a name="l00192"></a>00192 
+<a name="l00193"></a>00193   <span class="comment">// Fold imm into offset</span>
+<a name="l00194"></a>00194   Offset += MI.<a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i+1).<a class="code" href="classllvm_1_1MachineOperand.html#a7059d68a29d5ecfb37623ab45cdb4e8d">getImm</a>();
+<a name="l00195"></a>00195 
+<a name="l00196"></a>00196   <span class="keywordflow">if</span> (MI.<a class="code" href="classllvm_1_1MachineInstr.html#a242314c0ae0147d1a7ef54c9bc312616">getOpcode</a>() == MSP430::ADD16ri) {
+<a name="l00197"></a>00197     <span class="comment">// This is actually "load effective address" of the stack slot</span>
+<a name="l00198"></a>00198     <span class="comment">// instruction. We have only two-address instructions, thus we need to</span>
+<a name="l00199"></a>00199     <span class="comment">// expand it into mov + add</span>
+<a name="l00200"></a>00200 
+<a name="l00201"></a>00201     MI.<a class="code" href="classllvm_1_1MachineInstr.html#a1ecb35298bc4d1fe03997959e1210c87">setDesc</a>(TII.<a class="code" href="classllvm_1_1MCInstrInfo.html#ab16f5a81fccfe4b7f645ba5a74ffad02">get</a>(MSP430::MOV16rr));
+<a name="l00202"></a>00202     MI.<a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i).<a class="code" href="classllvm_1_1MachineOperand.html#a7db02b21d284294b8d9369803fe1c13b">ChangeToRegister</a>(BasePtr, <span class="keyword">false</span>);
+<a name="l00203"></a>00203 
+<a name="l00204"></a>00204     <span class="keywordflow">if</span> (Offset == 0)
+<a name="l00205"></a>00205       <span class="keywordflow">return</span>;
+<a name="l00206"></a>00206 
+<a name="l00207"></a>00207     <span class="comment">// We need to materialize the offset via add instruction.</span>
+<a name="l00208"></a>00208     <span class="keywordtype">unsigned</span> DstReg = MI.<a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(0).<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l00209"></a>00209     <span class="keywordflow">if</span> (Offset < 0)
+<a name="l00210"></a>00210       <a class="code" href="namespacellvm.html#a980570dc1410d4ef53806f82028ca381">BuildMI</a>(MBB, <a class="code" href="namespacellvm.html#aa1704159f75e6eacd595962ea6d93ffe">llvm::next</a>(II), dl, TII.<a class="code" href="classllvm_1_1MCInstrInfo.html#ab16f5a81fccfe4b7f645ba5a74ffad02">get</a>(MSP430::SUB16ri), DstReg)
+<a name="l00211"></a>00211         .addReg(DstReg).<a class="code" href="classllvm_1_1MachineInstrBuilder.html#a9f1fae6a5dbb6e378ca85df1fded8515">addImm</a>(-Offset);
+<a name="l00212"></a>00212     <span class="keywordflow">else</span>
+<a name="l00213"></a>00213       <a class="code" href="namespacellvm.html#a980570dc1410d4ef53806f82028ca381">BuildMI</a>(MBB, <a class="code" href="namespacellvm.html#aa1704159f75e6eacd595962ea6d93ffe">llvm::next</a>(II), dl, TII.<a class="code" href="classllvm_1_1MCInstrInfo.html#ab16f5a81fccfe4b7f645ba5a74ffad02">get</a>(MSP430::ADD16ri), DstReg)
+<a name="l00214"></a>00214         .addReg(DstReg).<a class="code" href="classllvm_1_1MachineInstrBuilder.html#a9f1fae6a5dbb6e378ca85df1fded8515">addImm</a>(Offset);
+<a name="l00215"></a>00215 
+<a name="l00216"></a>00216     <span class="keywordflow">return</span>;
+<a name="l00217"></a>00217   }
+<a name="l00218"></a>00218 
+<a name="l00219"></a>00219   MI.<a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i).<a class="code" href="classllvm_1_1MachineOperand.html#a7db02b21d284294b8d9369803fe1c13b">ChangeToRegister</a>(BasePtr, <span class="keyword">false</span>);
+<a name="l00220"></a>00220   MI.<a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i+1).<a class="code" href="classllvm_1_1MachineOperand.html#aa7e43fc5b201a1cc5b2b0f1f72963dd2">ChangeToImmediate</a>(Offset);
+<a name="l00221"></a>00221 }
+<a name="l00222"></a>00222 
+<a name="l00223"></a><a class="code" href="structllvm_1_1MSP430RegisterInfo.html#afdaea53bec189cfb8a747e286525996d">00223</a> <span class="keywordtype">unsigned</span> <a class="code" href="structllvm_1_1MSP430RegisterInfo.html#afdaea53bec189cfb8a747e286525996d">MSP430RegisterInfo::getFrameRegister</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF)<span class="keyword"> const </span>{
+<a name="l00224"></a>00224   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetFrameLowering.html">TargetFrameLowering</a> *TFI = MF.<a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>().<a class="code" href="classllvm_1_1TargetMachine.html#a02aa9d4cbd6ffcc70dfe1143ec0995ef">getFrameLowering</a>();
+<a name="l00225"></a>00225 
+<a name="l00226"></a>00226   <span class="keywordflow">return</span> TFI-><a class="code" href="classllvm_1_1TargetFrameLowering.html#a59182730437bdb0a45a274261a7ea84b">hasFP</a>(MF) ? MSP430::FPW : MSP430::SPW;
+<a name="l00227"></a>00227 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:36:16 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,43 @@
+<map id="G" name="G">
+<area shape="rect" href="$MSP430TargetMachine_8h.html" title="MSP430TargetMachine.h" alt="" coords="2595,84,2771,111"/>
+<area shape="rect" href="$MSP430InstrInfo_8h.html" title="MSP430InstrInfo.h" alt="" coords="1557,161,1693,188"/>
+<area shape="rect" href="$MSP430RegisterInfo_8h.html" title="MSP430RegisterInfo.h" alt="" coords="1113,239,1273,265"/>
+<area shape="rect" href="$MSP430ISelLowering_8h.html" title="MSP430ISelLowering.h" alt="" coords="2532,161,2695,188"/>
+<area shape="rect" href="$Target_2TargetMachine_8h.html" title="llvm/Target/TargetMachine.h" alt="" coords="3445,316,3643,343"/>
+<area shape="rect" href="$TargetTransformImpl_8h.html" title="llvm/Target/TargetTransformImpl.h" alt="" coords="3211,393,3445,420"/>
+<area shape="rect" href="$MSP430FrameLowering_8h.html" title="MSP430FrameLowering.h" alt="" coords="2837,161,3019,188"/>
+<area shape="rect" href="$MSP430Subtarget_8h.html" title="MSP430Subtarget.h" alt="" coords="3496,239,3645,265"/>
+<area shape="rect" href="$TargetFrameLowering_8h.html" title="llvm/Target/TargetFrameLowering.h" alt="" coords="2683,316,2923,343"/>
+<area shape="rect" href="$MSP430SelectionDAGInfo_8h.html" title="MSP430SelectionDAGInfo.h" alt="" coords="2177,161,2372,188"/>
+<area shape="rect" href="$DataLayout_8h.html" title="llvm/DataLayout.h" alt="" coords="5,316,141,343"/>
+<area shape="rect" href="$TargetInstrInfo_8h.html" title="llvm/Target/TargetInstrInfo.h" alt="" coords="696,239,891,265"/>
+<area shape="rect" href="$TargetRegisterInfo_8h.html" title="llvm/Target/TargetRegisterInfo.h" alt="" coords="392,316,611,343"/>
+<area shape="rect" href="$MachineBasicBlock_8h.html" title="llvm/CodeGen/MachineBasicBlock.h" alt="" coords="755,393,1003,420"/>
+<area shape="rect" href="$ValueTypes_8h.html" title="llvm/CodeGen/ValueTypes.h" alt="" coords="1139,471,1333,497"/>
+<area shape="rect" href="$CallingConv_8h.html" title="llvm/CallingConv.h" alt="" coords="595,393,731,420"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="1017,625,1201,652"/>
+<area shape="rect" href="$SmallSet_8h.html" title="llvm/ADT/SmallSet.h" alt="" coords="165,316,317,343"/>
+<area shape="rect" href="$MCInstrInfo_8h.html" title="llvm/MC/MCInstrInfo.h" alt="" coords="856,471,1013,497"/>
+<area shape="rect" href="$DFAPacketizer_8h.html" title="llvm/CodeGen/DFAPacketizer.h" alt="" coords="685,316,901,343"/>
+<area shape="rect" href="$MachineFunction_8h.html" title="llvm/CodeGen/MachineFunction.h" alt="" coords="925,316,1157,343"/>
+<area shape="rect" href="$SmallVector_8h.html" title="llvm/ADT/SmallVector.h" alt="" coords="157,393,325,420"/>
+<area shape="rect" href="$DenseMap_8h.html" title="llvm/ADT/DenseMap.h" alt="" coords="1347,393,1507,420"/>
+<area shape="rect" href="$ilist_8h.html" title="llvm/ADT/ilist.h" alt="" coords="1605,393,1720,420"/>
+<area shape="rect" href="$MSP430_8h.html" title="MSP430.h" alt="" coords="2940,239,3025,265"/>
+<area shape="rect" href="$SelectionDAG_8h.html" title="llvm/CodeGen/SelectionDAG.h" alt="" coords="2488,239,2701,265"/>
+<area shape="rect" href="$TargetLowering_8h.html" title="llvm/Target/TargetLowering.h" alt="" coords="1577,239,1777,265"/>
+<area shape="rect" href="$MSP430MCTargetDesc_8h.html" title="MCTargetDesc/MSP430MCTargetDesc.h" alt="" coords="2947,316,3219,343"/>
+<area shape="rect" href="$Pass_8h.html" title="llvm/Pass.h" alt="" coords="3408,548,3499,575"/>
+<area shape="rect" href="$CodeGen_8h.html" title="llvm/Support/CodeGen.h" alt="" coords="3723,393,3899,420"/>
+<area shape="rect" href="$TargetOptions_8h.html" title="llvm/Target/TargetOptions.h" alt="" coords="3672,548,3867,575"/>
+<area shape="rect" href="$TargetTransformInfo_8h.html" title="llvm/TargetTransformInfo.h" alt="" coords="3360,471,3547,497"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="2280,393,2429,420"/>
+<area shape="rect" href="$AddressingMode_8h.html" title="llvm/AddressingMode.h" alt="" coords="1673,548,1841,575"/>
+<area shape="rect" href="$DenseSet_8h.html" title="llvm/ADT/DenseSet.h" alt="" coords="1715,316,1869,343"/>
+<area shape="rect" href="$StringMap_8h.html" title="llvm/ADT/StringMap.h" alt="" coords="2093,316,2251,343"/>
+<area shape="rect" href="$SelectionDAGNodes_8h.html" title="llvm/CodeGen/SelectionDAGNodes.h" alt="" coords="1181,316,1437,343"/>
+<area shape="rect" href="$RecyclingAllocator_8h.html" title="llvm/Support/RecyclingAllocator.h" alt="" coords="2275,316,2507,343"/>
+<area shape="rect" href="$InlineAsm_8h.html" title="llvm/InlineAsm.h" alt="" coords="1893,316,2019,343"/>
+<area shape="rect" href="$TargetSubtargetInfo_8h.html" title="llvm/Target/TargetSubtargetInfo.h" alt="" coords="3667,316,3899,343"/>
+<area shape="rect" href="$TargetSelectionDAGInfo_8h.html" title="llvm/Target/TargetSelectionDAGInfo.h" alt="" coords="1297,239,1553,265"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+31b9801e26ee52309aee25e5ebc423e8
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MSP430SelectionDAGInfo.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_8a55ec9894173378e0d08f27f306eeee.html">Target</a>      </li>
+      <li class="navelem"><a class="el" href="dir_602b31a765eb4e3038b3d345fb70f8b8.html">MSP430</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MSP430SelectionDAGInfo.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="MSP430SelectionDAGInfo_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- MSP430SelectionDAGInfo.cpp - MSP430 SelectionDAG Info -------------===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file implements the MSP430SelectionDAGInfo class.</span>
+<a name="l00011"></a>00011 <span class="comment">//</span>
+<a name="l00012"></a>00012 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00013"></a>00013 
+<a name="l00014"></a><a class="code" href="MSP430SelectionDAGInfo_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">00014</a> <span class="preprocessor">#define DEBUG_TYPE "msp430-selectiondag-info"</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="MSP430TargetMachine_8h.html">MSP430TargetMachine.h</a>"</span>
+<a name="l00016"></a>00016 <span class="keyword">using namespace </span>llvm;
+<a name="l00017"></a>00017 
+<a name="l00018"></a><a class="code" href="classllvm_1_1MSP430SelectionDAGInfo.html#a49f499c5d95dcf2f4b0e13297101699d">00018</a> <a class="code" href="classllvm_1_1MSP430SelectionDAGInfo.html#a49f499c5d95dcf2f4b0e13297101699d">MSP430SelectionDAGInfo::MSP430SelectionDAGInfo</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MSP430TargetMachine.html">MSP430TargetMachine</a> &TM)
+<a name="l00019"></a>00019   : <a class="code" href="classllvm_1_1TargetSelectionDAGInfo.html">TargetSelectionDAGInfo</a>(TM) {
+<a name="l00020"></a>00020 }
+<a name="l00021"></a>00021 
+<a name="l00022"></a><a class="code" href="classllvm_1_1MSP430SelectionDAGInfo.html#aa01b6d4c1fda1bc09bdf0d363ed9e0a9">00022</a> <a class="code" href="classllvm_1_1MSP430SelectionDAGInfo.html#aa01b6d4c1fda1bc09bdf0d363ed9e0a9">MSP430SelectionDAGInfo::~MSP430SelectionDAGInfo</a>() {
+<a name="l00023"></a>00023 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:36:16 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h__dep__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h__dep__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h__dep__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h__incl.map?rev=170845&view=auto
==============================================================================
    (empty)

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+f94191655f9996cf2b52c1dec7103779
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430SelectionDAGInfo_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MSP430SelectionDAGInfo.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_8a55ec9894173378e0d08f27f306eeee.html">Target</a>      </li>
+      <li class="navelem"><a class="el" href="dir_602b31a765eb4e3038b3d345fb70f8b8.html">MSP430</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MSP430SelectionDAGInfo.h</div>  </div>
+</div>
+<div class="contents">
+<a href="MSP430SelectionDAGInfo_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- MSP430SelectionDAGInfo.h - MSP430 SelectionDAG Info -----*- C++ -*-===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file defines the MSP430 subclass for TargetSelectionDAGInfo.</span>
+<a name="l00011"></a>00011 <span class="comment">//</span>
+<a name="l00012"></a>00012 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="preprocessor">#ifndef MSP430SELECTIONDAGINFO_H</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define MSP430SELECTIONDAGINFO_H</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="TargetSelectionDAGInfo_8h.html">llvm/Target/TargetSelectionDAGInfo.h</a>"</span>
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 <span class="keyword">namespace </span>llvm {
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 <span class="keyword">class </span>MSP430TargetMachine;
+<a name="l00022"></a>00022 
+<a name="l00023"></a><a class="code" href="classllvm_1_1MSP430SelectionDAGInfo.html">00023</a> <span class="keyword">class </span><a class="code" href="classllvm_1_1MSP430SelectionDAGInfo.html">MSP430SelectionDAGInfo</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1TargetSelectionDAGInfo.html">TargetSelectionDAGInfo</a> {
+<a name="l00024"></a>00024 <span class="keyword">public</span>:
+<a name="l00025"></a>00025   <span class="keyword">explicit</span> <a class="code" href="classllvm_1_1MSP430SelectionDAGInfo.html#a49f499c5d95dcf2f4b0e13297101699d">MSP430SelectionDAGInfo</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MSP430TargetMachine.html">MSP430TargetMachine</a> &TM);
+<a name="l00026"></a>00026   <a class="code" href="classllvm_1_1MSP430SelectionDAGInfo.html#aa01b6d4c1fda1bc09bdf0d363ed9e0a9">~MSP430SelectionDAGInfo</a>();
+<a name="l00027"></a>00027 };
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 }
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:36:16 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MSP430Subtarget.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_8a55ec9894173378e0d08f27f306eeee.html">Target</a>      </li>
+      <li class="navelem"><a class="el" href="dir_602b31a765eb4e3038b3d345fb70f8b8.html">MSP430</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Defines</a>  </div>
+  <div class="headertitle">
+<div class="title">MSP430Subtarget.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="MSP430Subtarget_8h_source.html">MSP430Subtarget.h</a>"</code><br/>
+<code>#include "<a class="el" href="MSP430_8h_source.html">MSP430.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetRegistry_8h_source.html">llvm/Support/TargetRegistry.h</a>"</code><br/>
+<code>#include "MSP430GenSubtargetInfo.inc"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for MSP430Subtarget.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="MSP430Subtarget_8cpp__incl.png" border="0" usemap="#MSP430Subtarget_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="MSP430Subtarget_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="MSP430Subtarget_8cpp.html#a9edcf2eb5fb8161f71f0b6540ad9cf95">GET_SUBTARGETINFO_TARGET_DESC</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="MSP430Subtarget_8cpp.html#aa7e319f7bba8b140ee2d876cc3f8308b">GET_SUBTARGETINFO_CTOR</a></td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="aa7e319f7bba8b140ee2d876cc3f8308b"></a><!-- doxytag: member="MSP430Subtarget.cpp::GET_SUBTARGETINFO_CTOR" ref="aa7e319f7bba8b140ee2d876cc3f8308b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GET_SUBTARGETINFO_CTOR</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MSP430Subtarget_8cpp_source.html#l00019">19</a> of file <a class="el" href="MSP430Subtarget_8cpp_source.html">MSP430Subtarget.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9edcf2eb5fb8161f71f0b6540ad9cf95"></a><!-- doxytag: member="MSP430Subtarget.cpp::GET_SUBTARGETINFO_TARGET_DESC" ref="a9edcf2eb5fb8161f71f0b6540ad9cf95" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GET_SUBTARGETINFO_TARGET_DESC</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MSP430Subtarget_8cpp_source.html#l00018">18</a> of file <a class="el" href="MSP430Subtarget_8cpp_source.html">MSP430Subtarget.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:36 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+88694a1dc2f60e20a05858eb8f1961dc
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8h__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8h__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8h__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8h__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,15 @@
+<map id="G" name="G">
+<area shape="rect" href="$TargetSubtargetInfo_8h.html" title="llvm/Target/TargetSubtargetInfo.h" alt="" coords="675,84,907,111"/>
+<area shape="rect" href="$MCSubtargetInfo_8h.html" title="llvm/MC/MCSubtargetInfo.h" alt="" coords="435,161,629,188"/>
+<area shape="rect" href="$CodeGen_8h.html" title="llvm/Support/CodeGen.h" alt="" coords="703,161,879,188"/>
+<area shape="rect" href="$SubtargetFeature_8h.html" title="llvm/MC/SubtargetFeature.h" alt="" coords="420,239,620,265"/>
+<area shape="rect" href="$MCInstrItineraries_8h.html" title="llvm/MC/MCInstrItineraries.h" alt="" coords="91,471,288,497"/>
+<area shape="rect" href="$Triple_8h.html" title="llvm/ADT/Triple.h" alt="" coords="444,316,569,343"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="107,703,291,729"/>
+<area shape="rect" href="$Twine_8h.html" title="llvm/ADT/Twine.h" alt="" coords="444,393,569,420"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="432,548,581,575"/>
+<area shape="rect" href="$ErrorHandling_8h.html" title="llvm/Support/ErrorHandling.h" alt="" coords="656,471,861,497"/>
+<area shape="rect" href="$type__traits_8h.html" title="llvm/Support/type_traits.h" alt="" coords="627,625,813,652"/>
+<area shape="rect" href="$Compiler_8h.html" title="llvm/Support/Compiler.h" alt="" coords="656,548,829,575"/>
+<area shape="rect" href="$MCSchedule_8h.html" title="llvm/MC/MCSchedule.h" alt="" coords="91,548,256,575"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8h__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8h__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8h__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430Subtarget_8h__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+cd68808aa6631b89d573a8eafe557910
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430TargetInfo_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430TargetInfo_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430TargetInfo_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430TargetInfo_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+5683015bb4b84626d188e14626b51218
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430TargetMachine_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430TargetMachine_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430TargetMachine_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430TargetMachine_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,21 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MSP430TargetMachine.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="MSP430AsmPrinter.cpp",height=0.2,width=0.4,color="black",URL="$MSP430AsmPrinter_8cpp.html"];
+  Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="MSP430InstrInfo.cpp",height=0.2,width=0.4,color="black",URL="$MSP430InstrInfo_8cpp.html"];
+  Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="MSP430ISelDAGToDAG.cpp",height=0.2,width=0.4,color="black",URL="$MSP430ISelDAGToDAG_8cpp.html"];
+  Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="MSP430ISelLowering.cpp",height=0.2,width=0.4,color="black",URL="$MSP430ISelLowering_8cpp.html"];
+  Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="MSP430RegisterInfo.cpp",height=0.2,width=0.4,color="black",URL="$MSP430RegisterInfo_8cpp.html"];
+  Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="MSP430SelectionDAGInfo.cpp",height=0.2,width=0.4,color="black",URL="$MSP430SelectionDAGInfo_8cpp.html"];
+  Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="MSP430TargetMachine.cpp",height=0.2,width=0.4,color="black",URL="$MSP430TargetMachine_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MSP430_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MSP430_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MSP430_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MSP430_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,45 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MSP430.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="MSP430InstPrinter.cpp",height=0.2,width=0.4,color="black",URL="$MSP430InstPrinter_8cpp.html"];
+  Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="MSP430AsmPrinter.cpp",height=0.2,width=0.4,color="black",URL="$MSP430AsmPrinter_8cpp.html"];
+  Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="MSP430ISelLowering.h",height=0.2,width=0.4,color="black",URL="$MSP430ISelLowering_8h.html"];
+  Node4 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="MSP430TargetMachine.h",height=0.2,width=0.4,color="black",URL="$MSP430TargetMachine_8h.html"];
+  Node5 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="MSP430InstrInfo.cpp",height=0.2,width=0.4,color="black",URL="$MSP430InstrInfo_8cpp.html"];
+  Node5 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="MSP430ISelDAGToDAG.cpp",height=0.2,width=0.4,color="black",URL="$MSP430ISelDAGToDAG_8cpp.html"];
+  Node5 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="MSP430ISelLowering.cpp",height=0.2,width=0.4,color="black",URL="$MSP430ISelLowering_8cpp.html"];
+  Node5 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="MSP430RegisterInfo.cpp",height=0.2,width=0.4,color="black",URL="$MSP430RegisterInfo_8cpp.html"];
+  Node5 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="MSP430SelectionDAGInfo.cpp",height=0.2,width=0.4,color="black",URL="$MSP430SelectionDAGInfo_8cpp.html"];
+  Node5 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="MSP430TargetMachine.cpp",height=0.2,width=0.4,color="black",URL="$MSP430TargetMachine_8cpp.html"];
+  Node4 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="MSP430FrameLowering.h",height=0.2,width=0.4,color="black",URL="$MSP430FrameLowering_8h.html"];
+  Node12 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="MSP430FrameLowering.cpp",height=0.2,width=0.4,color="black",URL="$MSP430FrameLowering_8cpp.html"];
+  Node1 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="MSP430BranchSelector.cpp",height=0.2,width=0.4,color="black",URL="$MSP430BranchSelector_8cpp.html"];
+  Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="MSP430Subtarget.cpp",height=0.2,width=0.4,color="black",URL="$MSP430Subtarget_8cpp.html"];
+  Node1 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="MSP430TargetInfo.cpp",height=0.2,width=0.4,color="black",URL="$MSP430TargetInfo_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachOFormat_8h__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachOFormat_8h__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachOFormat_8h__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachOFormat_8h__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,3 @@
+<map id="G" name="G">
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="107,84,291,111"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachOFormat_8h__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachOFormat_8h__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachOFormat_8h__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachOFormat_8h__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+a63363f40d9ab4cb1b8dfd73e0a73686
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MachOFormat_8h__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachOFormat_8h__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MachOFormat_8h__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MachOObjectFile_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachOObjectFile_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachOObjectFile_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachOObjectFile_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,130 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachOObjectFile.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/ADT/Triple.h",height=0.2,width=0.4,color="black",URL="$Triple_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/ADT/Twine.h",height=0.2,width=0.4,color="black",URL="$Twine_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node18 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/Object/MachO.h",height=0.2,width=0.4,color="black",URL="$Object_2MachO_8h.html"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/Object/ObjectFile.h",height=0.2,width=0.4,color="black",URL="$ObjectFile_8h.html"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Object/Binary.h",height=0.2,width=0.4,color="black",URL="$Binary_8h.html"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/ADT/OwningPtr.h",height=0.2,width=0.4,color="black",URL="$OwningPtr_8h.html"];
+  Node23 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/Object/Error.h",height=0.2,width=0.4,color="black",URL="$Object_2Error_8h.html"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Support/system_error.h",height=0.2,width=0.4,color="black",URL="$system__error_8h.html"];
+  Node25 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Config/llvm-config.h",height=0.2,width=0.4,color="black",URL="$llvm-config_8h.html"];
+  Node25 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="cerrno",height=0.2,width=0.4,color="grey75"];
+  Node25 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/Support/MemoryBuffer.h",height=0.2,width=0.4,color="black",URL="$MemoryBuffer_8h.html"];
+  Node28 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node20 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Object/MachOObject.h",height=0.2,width=0.4,color="black",URL="$MachOObject_8h.html"];
+  Node30 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/ADT/InMemoryStruct.h",height=0.2,width=0.4,color="black",URL="$InMemoryStruct_8h.html"];
+  Node31 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Object/MachOFormat.h",height=0.2,width=0.4,color="black",URL="$MachOFormat_8h.html"];
+  Node32 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Support/MachO.h",height=0.2,width=0.4,color="black",URL="$Support_2MachO_8h.html"];
+  Node33 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node34 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node35 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node36 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node35 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node35 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/Support/Format.h",height=0.2,width=0.4,color="black",URL="$Format_8h.html"];
+  Node40 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="cstdio",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="cctype",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachOObject_8h__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachOObject_8h__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MachOObject_8h__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MachORelocation_8h__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachORelocation_8h__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachORelocation_8h__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachORelocation_8h__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,3 @@
+<map id="G" name="G">
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="107,84,291,111"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachORelocation_8h__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachORelocation_8h__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachORelocation_8h__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachORelocation_8h__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+bdaaf585798c97ff8680cd287090437f
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MachObjectWriter_8cpp__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachObjectWriter_8cpp__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MachObjectWriter_8cpp__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineBasicBlock_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineBasicBlock_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineBasicBlock_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineBasicBlock_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,186 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineBasicBlock.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="black",URL="$MachineBasicBlock_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="red",URL="$MachineInstr_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="red",URL="$ilist_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node2 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node2 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/BasicBlock.h",height=0.2,width=0.4,color="black",URL="$BasicBlock_8h.html"];
+  Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/Instruction.h",height=0.2,width=0.4,color="red",URL="$Instruction_8h.html"];
+  Node13 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/SymbolTableListTraits.h",height=0.2,width=0.4,color="black",URL="$SymbolTableListTraits_8h.html"];
+  Node14 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/ADT/Twine.h",height=0.2,width=0.4,color="red",URL="$Twine_8h.html"];
+  Node15 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/CodeGen/LiveVariables.h",height=0.2,width=0.4,color="black",URL="$LiveVariables_8h.html"];
+  Node16 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/CodeGen/MachineFunctionPass.h",height=0.2,width=0.4,color="red",URL="$MachineFunctionPass_8h.html"];
+  Node16 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/Target/TargetRegisterInfo.h",height=0.2,width=0.4,color="red",URL="$TargetRegisterInfo_8h.html"];
+  Node18 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/ADT/BitVector.h",height=0.2,width=0.4,color="red",URL="$BitVector_8h.html"];
+  Node19 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="red",URL="$DenseMap_8h.html"];
+  Node20 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/ADT/IndexedMap.h",height=0.2,width=0.4,color="red",URL="$IndexedMap_8h.html"];
+  Node21 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/ADT/SmallSet.h",height=0.2,width=0.4,color="red",URL="$SmallSet_8h.html"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="red",URL="$SmallVector_8h.html"];
+  Node23 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/ADT/SmallPtrSet.h",height=0.2,width=0.4,color="red",URL="$SmallPtrSet_8h.html"];
+  Node24 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/ADT/SparseBitVector.h",height=0.2,width=0.4,color="red",URL="$SparseBitVector_8h.html"];
+  Node25 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="red",URL="$raw__ostream_8h.html"];
+  Node26 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/CodeGen/MachineDominators.h",height=0.2,width=0.4,color="black",URL="$MachineDominators_8h.html"];
+  Node27 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/CodeGen/MachineFunction.h",height=0.2,width=0.4,color="black",URL="$MachineFunction_8h.html"];
+  Node28 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="red",URL="$Allocator_8h.html"];
+  Node29 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Support/Recycler.h",height=0.2,width=0.4,color="red",URL="$Recycler_8h.html"];
+  Node30 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/Analysis/Dominators.h",height=0.2,width=0.4,color="red",URL="$Dominators_8h.html"];
+  Node31 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Analysis/DominatorInternals.h",height=0.2,width=0.4,color="black",URL="$DominatorInternals_8h.html"];
+  Node32 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/CodeGen/MachineLoopInfo.h",height=0.2,width=0.4,color="black",URL="$MachineLoopInfo_8h.html"];
+  Node33 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/Analysis/LoopInfo.h",height=0.2,width=0.4,color="red",URL="$LoopInfo_8h.html"];
+  Node34 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/CodeGen/SlotIndexes.h",height=0.2,width=0.4,color="black",URL="$SlotIndexes_8h.html"];
+  Node35 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/CodeGen/MachineInstrBundle.h",height=0.2,width=0.4,color="black",URL="$MachineInstrBundle_8h.html"];
+  Node36 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="red",URL="$PointerIntPair_8h.html"];
+  Node37 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/MC/MCAsmInfo.h",height=0.2,width=0.4,color="black",URL="$MCAsmInfo_8h.html"];
+  Node38 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/MC/MachineLocation.h",height=0.2,width=0.4,color="black",URL="$MachineLocation_8h.html"];
+  Node38 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/MC/MCDirectives.h",height=0.2,width=0.4,color="black",URL="$MCDirectives_8h.html"];
+  Node38 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/MC/MCContext.h",height=0.2,width=0.4,color="red",URL="$MCContext_8h.html"];
+  Node41 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/MC/SectionKind.h",height=0.2,width=0.4,color="black",URL="$SectionKind_8h.html"];
+  Node41 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/MC/MCDwarf.h",height=0.2,width=0.4,color="red",URL="$MCDwarf_8h.html"];
+  Node43 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/DataLayout.h",height=0.2,width=0.4,color="red",URL="$DataLayout_8h.html"];
+  Node44 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/Target/TargetInstrInfo.h",height=0.2,width=0.4,color="red",URL="$TargetInstrInfo_8h.html"];
+  Node45 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Target/TargetMachine.h",height=0.2,width=0.4,color="red",URL="$Target_2TargetMachine_8h.html"];
+  Node46 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Assembly/Writer.h",height=0.2,width=0.4,color="black",URL="$Writer_8h.html"];
+  Node1 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/ADT/SmallString.h",height=0.2,width=0.4,color="red",URL="$SmallString_8h.html"];
+  Node48 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Support/Debug.h",height=0.2,width=0.4,color="black",URL="$Debug_8h.html"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/Support/LeakDetector.h",height=0.2,width=0.4,color="red",URL="$LeakDetector_8h.html"];
+  Node1 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineBasicBlock_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineBasicBlock_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineBasicBlock_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineBasicBlock_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,167 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineBasicBlock.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="BlockFrequencyImpl.h",height=0.2,width=0.4,color="black",URL="$BlockFrequencyImpl_8h.html"];
+  Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="BlockFrequencyInfo.cpp",height=0.2,width=0.4,color="black",URL="$BlockFrequencyInfo_8cpp.html"];
+  Node2 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="MachineBlockFrequencyInfo.cpp",height=0.2,width=0.4,color="black",URL="$MachineBlockFrequencyInfo_8cpp.html"];
+  Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="MachineFunction.h",height=0.2,width=0.4,color="red",URL="$MachineFunction_8h.html"];
+  Node5 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="SlotIndexes.h",height=0.2,width=0.4,color="red",URL="$SlotIndexes_8h.html"];
+  Node6 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="LiveIntervalAnalysis.h",height=0.2,width=0.4,color="red",URL="$LiveIntervalAnalysis_8h.html"];
+  Node7 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="SpillPlacement.cpp",height=0.2,width=0.4,color="black",URL="$SpillPlacement_8cpp.html"];
+  Node6 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="MachineBasicBlock.cpp",height=0.2,width=0.4,color="black",URL="$MachineBasicBlock_8cpp.html"];
+  Node6 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="StackColoring.cpp",height=0.2,width=0.4,color="black",URL="$StackColoring_8cpp.html"];
+  Node5 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="CallingConvLower.h",height=0.2,width=0.4,color="red",URL="$CallingConvLower_8h.html"];
+  Node11 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="ARMISelLowering.cpp",height=0.2,width=0.4,color="black",URL="$ARMISelLowering_8cpp.html"];
+  Node5 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="GCStrategy.h",height=0.2,width=0.4,color="red",URL="$GCStrategy_8h.html"];
+  Node5 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="MachineDominators.h",height=0.2,width=0.4,color="red",URL="$MachineDominators_8h.html"];
+  Node14 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="MachineInstrBuilder.h",height=0.2,width=0.4,color="red",URL="$MachineInstrBuilder_8h.html"];
+  Node15 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="ARMLoadStoreOptimizer.cpp",height=0.2,width=0.4,color="black",URL="$ARMLoadStoreOptimizer_8cpp.html"];
+  Node5 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="TargetInstrInfo.h",height=0.2,width=0.4,color="red",URL="$TargetInstrInfo_8h.html"];
+  Node17 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="AggressiveAntiDepBreaker.cpp",height=0.2,width=0.4,color="black",URL="$AggressiveAntiDepBreaker_8cpp.html"];
+  Node17 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="CriticalAntiDepBreaker.cpp",height=0.2,width=0.4,color="black",URL="$CriticalAntiDepBreaker_8cpp.html"];
+  Node17 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="MachineBlockPlacement.cpp",height=0.2,width=0.4,color="black",URL="$MachineBlockPlacement_8cpp.html"];
+  Node17 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="MachineTraceMetrics.cpp",height=0.2,width=0.4,color="black",URL="$MachineTraceMetrics_8cpp.html"];
+  Node17 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="RegisterScavenging.cpp",height=0.2,width=0.4,color="black",URL="$RegisterScavenging_8cpp.html"];
+  Node17 -> Node23 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="SelectionDAG.cpp",height=0.2,width=0.4,color="black",URL="$SelectionDAG_8cpp.html"];
+  Node17 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 -> Node24 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="ProfileInfo.cpp",height=0.2,width=0.4,color="black",URL="$ProfileInfo_8cpp.html"];
+  Node5 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="AntiDepBreaker.h",height=0.2,width=0.4,color="red",URL="$AntiDepBreaker_8h.html"];
+  Node25 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="AggressiveAntiDepBreaker.h",height=0.2,width=0.4,color="red",URL="$AggressiveAntiDepBreaker_8h.html"];
+  Node26 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node27 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="CriticalAntiDepBreaker.h",height=0.2,width=0.4,color="red",URL="$CriticalAntiDepBreaker_8h.html"];
+  Node27 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 -> Node28 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="Analysis.cpp",height=0.2,width=0.4,color="black",URL="$CodeGen_2Analysis_8cpp.html"];
+  Node5 -> Node27 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 -> Node29 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="EdgeBundles.cpp",height=0.2,width=0.4,color="black",URL="$EdgeBundles_8cpp.html"];
+  Node5 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 -> Node30 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="PHIEliminationUtils.cpp",height=0.2,width=0.4,color="black",URL="$PHIEliminationUtils_8cpp.html"];
+  Node5 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node31 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="MachineInstrBundle.h",height=0.2,width=0.4,color="red",URL="$MachineInstrBundle_8h.html"];
+  Node31 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node32 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="DFAPacketizer.h",height=0.2,width=0.4,color="red",URL="$DFAPacketizer_8h.html"];
+  Node32 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node33 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="FastISel.h",height=0.2,width=0.4,color="red",URL="$FastISel_8h.html"];
+  Node1 -> Node34 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="FunctionLoweringInfo.h",height=0.2,width=0.4,color="red",URL="$FunctionLoweringInfo_8h.html"];
+  Node1 -> Node35 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="TargetRegisterInfo.h",height=0.2,width=0.4,color="red",URL="$TargetRegisterInfo_8h.html"];
+  Node35 -> Node34 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node36 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="LiveVariables.h",height=0.2,width=0.4,color="red",URL="$LiveVariables_8h.html"];
+  Node36 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node23 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node37 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="ScheduleDAG.h",height=0.2,width=0.4,color="red",URL="$ScheduleDAG_8h.html"];
+  Node37 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node27 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node36 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node38 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="MachineBranchProbabilityInfo.h",height=0.2,width=0.4,color="red",URL="$MachineBranchProbabilityInfo_8h.html"];
+  Node38 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node39 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="MachineBranchProbabilityInfo.cpp",height=0.2,width=0.4,color="black",URL="$MachineBranchProbabilityInfo_8cpp.html"];
+  Node38 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node40 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="RegisterScavenging.h",height=0.2,width=0.4,color="red",URL="$RegisterScavenging_8h.html"];
+  Node40 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node41 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="TargetFrameLowering.h",height=0.2,width=0.4,color="red",URL="$TargetFrameLowering_8h.html"];
+  Node1 -> Node24 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node42 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="AsmPrinterInlineAsm.cpp",height=0.2,width=0.4,color="black",URL="$AsmPrinterInlineAsm_8cpp.html"];
+  Node1 -> Node43 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="BranchFolding.h",height=0.2,width=0.4,color="red",URL="$BranchFolding_8h.html"];
+  Node1 -> Node27 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node29 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node39 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node44 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="PHIEliminationUtils.h",height=0.2,width=0.4,color="red",URL="$PHIEliminationUtils_8h.html"];
+  Node44 -> Node30 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node30 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node45 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="InstrEmitter.h",height=0.2,width=0.4,color="red",URL="$InstrEmitter_8h.html"];
+  Node1 -> Node23 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node46 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="ARMConstantPoolValue.cpp",height=0.2,width=0.4,color="black",URL="$ARMConstantPoolValue_8cpp.html"];
+  Node1 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node47 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="ARMMCInstLower.cpp",height=0.2,width=0.4,color="black",URL="$ARMMCInstLower_8cpp.html"];
+  Node1 -> Node48 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="HexagonMCInstLower.cpp",height=0.2,width=0.4,color="black",URL="$HexagonMCInstLower_8cpp.html"];
+  Node1 -> Node49 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="MBlazeMCInstLower.cpp",height=0.2,width=0.4,color="black",URL="$MBlazeMCInstLower_8cpp.html"];
+  Node1 -> Node50 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="MSP430MCInstLower.cpp",height=0.2,width=0.4,color="black",URL="$MSP430MCInstLower_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineBlockFrequencyInfo_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineBlockFrequencyInfo_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineBlockFrequencyInfo_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineBlockFrequencyInfo_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,181 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineBlockFrequencyInfo.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/InitializePasses.h",height=0.2,width=0.4,color="black",URL="$InitializePasses_8h.html"];
+  Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Analysis/BlockFrequencyImpl.h",height=0.2,width=0.4,color="black",URL="$BlockFrequencyImpl_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/BasicBlock.h",height=0.2,width=0.4,color="black",URL="$BasicBlock_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/Instruction.h",height=0.2,width=0.4,color="red",URL="$Instruction_8h.html"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/SymbolTableListTraits.h",height=0.2,width=0.4,color="black",URL="$SymbolTableListTraits_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="black",URL="$ilist_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node8 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/ADT/Twine.h",height=0.2,width=0.4,color="red",URL="$Twine_8h.html"];
+  Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node16 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="black",URL="$DenseMap_8h.html"];
+  Node21 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node22 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="red",URL="$MathExtras_8h.html"];
+  Node21 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node24 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node25 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="new",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/ADT/PostOrderIterator.h",height=0.2,width=0.4,color="black",URL="$PostOrderIterator_8h.html"];
+  Node28 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node28 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/ADT/SmallPtrSet.h",height=0.2,width=0.4,color="black",URL="$SmallPtrSet_8h.html"];
+  Node30 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="set",height=0.2,width=0.4,color="grey75"];
+  Node28 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="black",URL="$MachineBasicBlock_8h.html"];
+  Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="red",URL="$MachineInstr_8h.html"];
+  Node34 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/CodeGen/MachineFunction.h",height=0.2,width=0.4,color="black",URL="$MachineFunction_8h.html"];
+  Node36 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="red",URL="$Allocator_8h.html"];
+  Node37 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Support/Recycler.h",height=0.2,width=0.4,color="red",URL="$Recycler_8h.html"];
+  Node38 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/Support/BlockFrequency.h",height=0.2,width=0.4,color="black",URL="$BlockFrequency_8h.html"];
+  Node39 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/Support/BranchProbability.h",height=0.2,width=0.4,color="black",URL="$BranchProbability_8h.html"];
+  Node40 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/Support/Debug.h",height=0.2,width=0.4,color="black",URL="$Debug_8h.html"];
+  Node3 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node42 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/CodeGen/MachineBlockFrequencyInfo.h",height=0.2,width=0.4,color="black",URL="$MachineBlockFrequencyInfo_8h.html"];
+  Node43 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/CodeGen/MachineFunctionPass.h",height=0.2,width=0.4,color="black",URL="$MachineFunctionPass_8h.html"];
+  Node44 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node45 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="red",URL="$PassSupport_8h.html"];
+  Node46 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="red",URL="$PassAnalysisSupport_8h.html"];
+  Node47 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/CodeGen/Passes.h",height=0.2,width=0.4,color="black",URL="$CodeGen_2Passes_8h.html"];
+  Node48 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Target/TargetMachine.h",height=0.2,width=0.4,color="red",URL="$Target_2TargetMachine_8h.html"];
+  Node49 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/CodeGen/MachineBranchProbabilityInfo.h",height=0.2,width=0.4,color="black",URL="$MachineBranchProbabilityInfo_8h.html"];
+  Node50 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineBlockFrequencyInfo_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineBlockFrequencyInfo_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineBlockFrequencyInfo_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineBlockFrequencyInfo_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,11 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineBlockFrequencyInfo.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="MachineBlockFrequencyInfo.cpp",height=0.2,width=0.4,color="black",URL="$MachineBlockFrequencyInfo_8cpp.html"];
+  Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="MachineBlockPlacement.cpp",height=0.2,width=0.4,color="black",URL="$MachineBlockPlacement_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineBlockPlacement_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineBlockPlacement_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineBlockPlacement_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineBlockPlacement_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,1220 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineBlockPlacement.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_f2244d21cf8bec63d11bfc1ad661d96f.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MachineBlockPlacement.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="MachineBlockPlacement_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- MachineBlockPlacement.cpp - Basic Block Code Layout optimization --===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file implements basic block placement transformations using the CFG</span>
+<a name="l00011"></a>00011 <span class="comment">// structure and branch probability estimates.</span>
+<a name="l00012"></a>00012 <span class="comment">//</span>
+<a name="l00013"></a>00013 <span class="comment">// The pass strives to preserve the structure of the CFG (that is, retain</span>
+<a name="l00014"></a>00014 <span class="comment">// a topological ordering of basic blocks) in the absence of a *strong* signal</span>
+<a name="l00015"></a>00015 <span class="comment">// to the contrary from probabilities. However, within the CFG structure, it</span>
+<a name="l00016"></a>00016 <span class="comment">// attempts to choose an ordering which favors placing more likely sequences of</span>
+<a name="l00017"></a>00017 <span class="comment">// blocks adjacent to each other.</span>
+<a name="l00018"></a>00018 <span class="comment">//</span>
+<a name="l00019"></a>00019 <span class="comment">// The algorithm works from the inner-most loop within a function outward, and</span>
+<a name="l00020"></a>00020 <span class="comment">// at each stage walks through the basic blocks, trying to coalesce them into</span>
+<a name="l00021"></a>00021 <span class="comment">// sequential chains where allowed by the CFG (or demanded by heavy</span>
+<a name="l00022"></a>00022 <span class="comment">// probabilities). Finally, it walks the blocks in topological order, and the</span>
+<a name="l00023"></a>00023 <span class="comment">// first time it reaches a chain of basic blocks, it schedules them in the</span>
+<a name="l00024"></a>00024 <span class="comment">// function in-order.</span>
+<a name="l00025"></a>00025 <span class="comment">//</span>
+<a name="l00026"></a>00026 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00027"></a>00027 
+<a name="l00028"></a><a class="code" href="MachineBlockPlacement_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">00028</a> <span class="preprocessor">#define DEBUG_TYPE "block-placement2"</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="MachineBasicBlock_8h.html">llvm/CodeGen/MachineBasicBlock.h</a>"</span>
+<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="MachineBlockFrequencyInfo_8h.html">llvm/CodeGen/MachineBlockFrequencyInfo.h</a>"</span>
+<a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="MachineBranchProbabilityInfo_8h.html">llvm/CodeGen/MachineBranchProbabilityInfo.h</a>"</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="MachineFunction_8h.html">llvm/CodeGen/MachineFunction.h</a>"</span>
+<a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="MachineFunctionPass_8h.html">llvm/CodeGen/MachineFunctionPass.h</a>"</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="MachineLoopInfo_8h.html">llvm/CodeGen/MachineLoopInfo.h</a>"</span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="MachineModuleInfo_8h.html">llvm/CodeGen/MachineModuleInfo.h</a>"</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="CodeGen_2Passes_8h.html">llvm/CodeGen/Passes.h</a>"</span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="Allocator_8h.html">llvm/Support/Allocator.h</a>"</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="Debug_8h.html">llvm/Support/Debug.h</a>"</span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="DenseMap_8h.html">llvm/ADT/DenseMap.h</a>"</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="SmallPtrSet_8h.html">llvm/ADT/SmallPtrSet.h</a>"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="SmallVector_8h.html">llvm/ADT/SmallVector.h</a>"</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="Statistic_8h.html">llvm/ADT/Statistic.h</a>"</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="TargetInstrInfo_8h.html">llvm/Target/TargetInstrInfo.h</a>"</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="TargetLowering_8h.html">llvm/Target/TargetLowering.h</a>"</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include <algorithm></span>
+<a name="l00046"></a>00046 <span class="keyword">using namespace </span>llvm;
+<a name="l00047"></a>00047 
+<a name="l00048"></a>00048 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(NumCondBranches, <span class="stringliteral">"Number of conditional branches"</span>);
+<a name="l00049"></a>00049 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(NumUncondBranches, <span class="stringliteral">"Number of uncondittional branches"</span>);
+<a name="l00050"></a>00050 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(CondBranchTakenFreq,
+<a name="l00051"></a>00051           <span class="stringliteral">"Potential frequency of taking conditional branches"</span>);
+<a name="l00052"></a>00052 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(UncondBranchTakenFreq,
+<a name="l00053"></a>00053           <span class="stringliteral">"Potential frequency of taking unconditional branches"</span>);
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055 <span class="keyword">namespace </span>{
+<a name="l00056"></a>00056 <span class="keyword">class </span>BlockChain;<span class="comment"></span>
+<a name="l00057"></a>00057 <span class="comment">/// \brief Type for our function-wide basic block -> block chain mapping.</span>
+<a name="l00058"></a>00058 <span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<MachineBasicBlock *, BlockChain *></a> BlockToChainMapType;
+<a name="l00059"></a>00059 }
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061 <span class="keyword">namespace </span>{<span class="comment"></span>
+<a name="l00062"></a>00062 <span class="comment">/// \brief A chain of blocks which will be laid out contiguously.</span>
+<a name="l00063"></a>00063 <span class="comment">///</span>
+<a name="l00064"></a>00064 <span class="comment">/// This is the datastructure representing a chain of consecutive blocks that</span>
+<a name="l00065"></a>00065 <span class="comment">/// are profitable to layout together in order to maximize fallthrough</span>
+<a name="l00066"></a>00066 <span class="comment">/// probabilities and code locality. We also can use a block chain to represent</span>
+<a name="l00067"></a>00067 <span class="comment">/// a sequence of basic blocks which have some external (correctness)</span>
+<a name="l00068"></a>00068 <span class="comment">/// requirement for sequential layout.</span>
+<a name="l00069"></a>00069 <span class="comment">///</span>
+<a name="l00070"></a>00070 <span class="comment">/// Chains can be built around a single basic block and can be merged to grow</span>
+<a name="l00071"></a>00071 <span class="comment">/// them. They participate in a block-to-chain mapping, which is updated</span>
+<a name="l00072"></a>00072 <span class="comment">/// automatically as chains are merged together.</span>
+<a name="l00073"></a>00073 <span class="comment"></span><span class="keyword">class </span>BlockChain {<span class="comment"></span>
+<a name="l00074"></a>00074 <span class="comment">  /// \brief The sequence of blocks belonging to this chain.</span>
+<a name="l00075"></a>00075 <span class="comment">  ///</span>
+<a name="l00076"></a>00076 <span class="comment">  /// This is the sequence of blocks for a particular chain. These will be laid</span>
+<a name="l00077"></a>00077 <span class="comment">  /// out in-order within the function.</span>
+<a name="l00078"></a>00078 <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineBasicBlock *, 4></a> Blocks;
+<a name="l00079"></a>00079 <span class="comment"></span>
+<a name="l00080"></a>00080 <span class="comment">  /// \brief A handle to the function-wide basic block to block chain mapping.</span>
+<a name="l00081"></a>00081 <span class="comment">  ///</span>
+<a name="l00082"></a>00082 <span class="comment">  /// This is retained in each block chain to simplify the computation of child</span>
+<a name="l00083"></a>00083 <span class="comment">  /// block chains for SCC-formation and iteration. We store the edges to child</span>
+<a name="l00084"></a>00084 <span class="comment">  /// basic blocks, and map them back to their associated chains using this</span>
+<a name="l00085"></a>00085 <span class="comment">  /// structure.</span>
+<a name="l00086"></a>00086 <span class="comment"></span>  BlockToChainMapType &BlockToChain;
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088 <span class="keyword">public</span>:<span class="comment"></span>
+<a name="l00089"></a>00089 <span class="comment">  /// \brief Construct a new BlockChain.</span>
+<a name="l00090"></a>00090 <span class="comment">  ///</span>
+<a name="l00091"></a>00091 <span class="comment">  /// This builds a new block chain representing a single basic block in the</span>
+<a name="l00092"></a>00092 <span class="comment">  /// function. It also registers itself as the chain that block participates</span>
+<a name="l00093"></a>00093 <span class="comment">  /// in with the BlockToChain mapping.</span>
+<a name="l00094"></a>00094 <span class="comment"></span>  BlockChain(BlockToChainMapType &BlockToChain, <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB)
+<a name="l00095"></a>00095     : Blocks(1, BB), BlockToChain(BlockToChain), LoopPredecessors(0) {
+<a name="l00096"></a>00096     assert(BB && <span class="stringliteral">"Cannot create a chain with a null basic block"</span>);
+<a name="l00097"></a>00097     BlockToChain[BB] = <span class="keyword">this</span>;
+<a name="l00098"></a>00098   }
+<a name="l00099"></a>00099 <span class="comment"></span>
+<a name="l00100"></a>00100 <span class="comment">  /// \brief Iterator over blocks within the chain.</span>
+<a name="l00101"></a>00101 <span class="comment"></span>  <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<MachineBasicBlock *>::iterator</a> <a class="code" href="classstd_1_1iterator.html">iterator</a>;
+<a name="l00102"></a>00102 <span class="comment"></span>
+<a name="l00103"></a>00103 <span class="comment">  /// \brief Beginning of blocks within the chain.</span>
+<a name="l00104"></a>00104 <span class="comment"></span>  <a class="code" href="classstd_1_1iterator.html">iterator</a> <a class="code" href="namespacellvm_1_1sys_1_1path.html#a33706aab89e700b8f79e1fa6f4f0e3ee" title="Get begin iterator over path.">begin</a>() { <span class="keywordflow">return</span> Blocks.begin(); }
+<a name="l00105"></a>00105 <span class="comment"></span>
+<a name="l00106"></a>00106 <span class="comment">  /// \brief End of blocks within the chain.</span>
+<a name="l00107"></a>00107 <span class="comment"></span>  <a class="code" href="classstd_1_1iterator.html">iterator</a> <a class="code" href="namespacellvm_1_1sys_1_1path.html#a214ec2f04ffd92636ed4bd2717607a1d" title="Get end iterator over path.">end</a>() { <span class="keywordflow">return</span> Blocks.end(); }
+<a name="l00108"></a>00108 <span class="comment"></span>
+<a name="l00109"></a>00109 <span class="comment">  /// \brief Merge a block chain into this one.</span>
+<a name="l00110"></a>00110 <span class="comment">  ///</span>
+<a name="l00111"></a>00111 <span class="comment">  /// This routine merges a block chain into this one. It takes care of forming</span>
+<a name="l00112"></a>00112 <span class="comment">  /// a contiguous sequence of basic blocks, updating the edge list, and</span>
+<a name="l00113"></a>00113 <span class="comment">  /// updating the block -> chain mapping. It does not free or tear down the</span>
+<a name="l00114"></a>00114 <span class="comment">  /// old chain, but the old chain's block list is no longer valid.</span>
+<a name="l00115"></a>00115 <span class="comment"></span>  <span class="keywordtype">void</span> merge(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB, BlockChain *Chain) {
+<a name="l00116"></a>00116     assert(BB);
+<a name="l00117"></a>00117     assert(!Blocks.empty());
+<a name="l00118"></a>00118 
+<a name="l00119"></a>00119     <span class="comment">// Fast path in case we don't have a chain already.</span>
+<a name="l00120"></a>00120     <span class="keywordflow">if</span> (!Chain) {
+<a name="l00121"></a>00121       assert(!BlockToChain[BB]);
+<a name="l00122"></a>00122       Blocks.push_back(BB);
+<a name="l00123"></a>00123       BlockToChain[BB] = <span class="keyword">this</span>;
+<a name="l00124"></a>00124       <span class="keywordflow">return</span>;
+<a name="l00125"></a>00125     }
+<a name="l00126"></a>00126 
+<a name="l00127"></a>00127     assert(BB == *Chain->begin());
+<a name="l00128"></a>00128     assert(Chain->begin() != Chain->end());
+<a name="l00129"></a>00129 
+<a name="l00130"></a>00130     <span class="comment">// Update the incoming blocks to point to this chain, and add them to the</span>
+<a name="l00131"></a>00131     <span class="comment">// chain structure.</span>
+<a name="l00132"></a>00132     <span class="keywordflow">for</span> (BlockChain::iterator BI = Chain->begin(), BE = Chain->end();
+<a name="l00133"></a>00133          BI != BE; ++BI) {
+<a name="l00134"></a>00134       Blocks.push_back(*BI);
+<a name="l00135"></a>00135       assert(BlockToChain[*BI] == Chain && <span class="stringliteral">"Incoming blocks not in chain"</span>);
+<a name="l00136"></a>00136       BlockToChain[*BI] = <span class="keyword">this</span>;
+<a name="l00137"></a>00137     }
+<a name="l00138"></a>00138   }
+<a name="l00139"></a>00139 
+<a name="l00140"></a>00140 <span class="preprocessor">#ifndef NDEBUG</span>
+<a name="l00141"></a>00141 <span class="preprocessor"></span><span class="comment">  /// \brief Dump the blocks in this chain.</span>
+<a name="l00142"></a>00142 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="namespacellvm.html#a03503773241005f01b090b9862aad304">dump</a>() <a class="code" href="Compiler_8h.html#a6881c00738b22a600dfee25a1c32dab3">LLVM_ATTRIBUTE_USED</a> {
+<a name="l00143"></a>00143     <span class="keywordflow">for</span> (<a class="code" href="classstd_1_1iterator.html">iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = <a class="code" href="namespacellvm_1_1sys_1_1path.html#a33706aab89e700b8f79e1fa6f4f0e3ee" title="Get begin iterator over path.">begin</a>(), E = <a class="code" href="namespacellvm_1_1sys_1_1path.html#a214ec2f04ffd92636ed4bd2717607a1d" title="Get end iterator over path.">end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00144"></a>00144       (*I)->dump();
+<a name="l00145"></a>00145   }
+<a name="l00146"></a>00146 <span class="preprocessor">#endif // NDEBUG</span>
+<a name="l00147"></a>00147 <span class="preprocessor"></span><span class="comment"></span>
+<a name="l00148"></a>00148 <span class="comment">  /// \brief Count of predecessors within the loop currently being processed.</span>
+<a name="l00149"></a>00149 <span class="comment">  ///</span>
+<a name="l00150"></a>00150 <span class="comment">  /// This count is updated at each loop we process to represent the number of</span>
+<a name="l00151"></a>00151 <span class="comment">  /// in-loop predecessors of this chain.</span>
+<a name="l00152"></a>00152 <span class="comment"></span>  <span class="keywordtype">unsigned</span> LoopPredecessors;
+<a name="l00153"></a>00153 };
+<a name="l00154"></a>00154 }
+<a name="l00155"></a>00155 
+<a name="l00156"></a>00156 <span class="keyword">namespace </span>{
+<a name="l00157"></a>00157 <span class="keyword">class </span>MachineBlockPlacement : <span class="keyword">public</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a> {<span class="comment"></span>
+<a name="l00158"></a>00158 <span class="comment">  /// \brief A typedef for a block filter set.</span>
+<a name="l00159"></a>00159 <span class="comment"></span>  <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<MachineBasicBlock *, 16></a> BlockFilterSet;
+<a name="l00160"></a>00160 <span class="comment"></span>
+<a name="l00161"></a>00161 <span class="comment">  /// \brief A handle to the branch probability pass.</span>
+<a name="l00162"></a>00162 <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html">MachineBranchProbabilityInfo</a> *MBPI;
+<a name="l00163"></a>00163 <span class="comment"></span>
+<a name="l00164"></a>00164 <span class="comment">  /// \brief A handle to the function-wide block frequency pass.</span>
+<a name="l00165"></a>00165 <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineBlockFrequencyInfo.html">MachineBlockFrequencyInfo</a> *MBFI;
+<a name="l00166"></a>00166 <span class="comment"></span>
+<a name="l00167"></a>00167 <span class="comment">  /// \brief A handle to the loop info.</span>
+<a name="l00168"></a>00168 <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a> *MLI;
+<a name="l00169"></a>00169 <span class="comment"></span>
+<a name="l00170"></a>00170 <span class="comment">  /// \brief A handle to the target's instruction info.</span>
+<a name="l00171"></a>00171 <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetInstrInfo.html">TargetInstrInfo</a> *TII;
+<a name="l00172"></a>00172 <span class="comment"></span>
+<a name="l00173"></a>00173 <span class="comment">  /// \brief A handle to the target's lowering info.</span>
+<a name="l00174"></a>00174 <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetLowering.html">TargetLowering</a> *TLI;
+<a name="l00175"></a>00175 <span class="comment"></span>
+<a name="l00176"></a>00176 <span class="comment">  /// \brief Allocator and owner of BlockChain structures.</span>
+<a name="l00177"></a>00177 <span class="comment">  ///</span>
+<a name="l00178"></a>00178 <span class="comment">  /// We build BlockChains lazily while processing the loop structure of</span>
+<a name="l00179"></a>00179 <span class="comment">  /// a function. To reduce malloc traffic, we allocate them using this</span>
+<a name="l00180"></a>00180 <span class="comment">  /// slab-like allocator, and destroy them after the pass completes. An</span>
+<a name="l00181"></a>00181 <span class="comment">  /// important guarantee is that this allocator produces stable pointers to</span>
+<a name="l00182"></a>00182 <span class="comment">  /// the chains.</span>
+<a name="l00183"></a>00183 <span class="comment"></span>  <a class="code" href="classllvm_1_1SpecificBumpPtrAllocator.html">SpecificBumpPtrAllocator<BlockChain></a> ChainAllocator;
+<a name="l00184"></a>00184 <span class="comment"></span>
+<a name="l00185"></a>00185 <span class="comment">  /// \brief Function wide BasicBlock to BlockChain mapping.</span>
+<a name="l00186"></a>00186 <span class="comment">  ///</span>
+<a name="l00187"></a>00187 <span class="comment">  /// This mapping allows efficiently moving from any given basic block to the</span>
+<a name="l00188"></a>00188 <span class="comment">  /// BlockChain it participates in, if any. We use it to, among other things,</span>
+<a name="l00189"></a>00189 <span class="comment">  /// allow implicitly defining edges between chains as the existing edges</span>
+<a name="l00190"></a>00190 <span class="comment">  /// between basic blocks.</span>
+<a name="l00191"></a>00191 <span class="comment"></span>  <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<MachineBasicBlock *, BlockChain *></a> BlockToChain;
+<a name="l00192"></a>00192 
+<a name="l00193"></a>00193   <span class="keywordtype">void</span> markChainSuccessors(BlockChain &Chain,
+<a name="l00194"></a>00194                            <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *LoopHeaderBB,
+<a name="l00195"></a>00195                            <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<MachineBasicBlock *></a> &BlockWorkList,
+<a name="l00196"></a>00196                            <span class="keyword">const</span> BlockFilterSet *BlockFilter = 0);
+<a name="l00197"></a>00197   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *selectBestSuccessor(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB,
+<a name="l00198"></a>00198                                          BlockChain &Chain,
+<a name="l00199"></a>00199                                          <span class="keyword">const</span> BlockFilterSet *BlockFilter);
+<a name="l00200"></a>00200   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *selectBestCandidateBlock(
+<a name="l00201"></a>00201       BlockChain &Chain, <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<MachineBasicBlock *></a> &WorkList,
+<a name="l00202"></a>00202       <span class="keyword">const</span> BlockFilterSet *BlockFilter);
+<a name="l00203"></a>00203   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *getFirstUnplacedBlock(
+<a name="l00204"></a>00204       <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>,
+<a name="l00205"></a>00205       <span class="keyword">const</span> BlockChain &PlacedChain,
+<a name="l00206"></a>00206       <a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a> &PrevUnplacedBlockIt,
+<a name="l00207"></a>00207       <span class="keyword">const</span> BlockFilterSet *BlockFilter);
+<a name="l00208"></a>00208   <span class="keywordtype">void</span> buildChain(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB, BlockChain &Chain,
+<a name="l00209"></a>00209                   <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<MachineBasicBlock *></a> &BlockWorkList,
+<a name="l00210"></a>00210                   <span class="keyword">const</span> BlockFilterSet *BlockFilter = 0);
+<a name="l00211"></a>00211   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *findBestLoopTop(<a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> &L,
+<a name="l00212"></a>00212                                      <span class="keyword">const</span> BlockFilterSet &LoopBlockSet);
+<a name="l00213"></a>00213   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *findBestLoopExit(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>,
+<a name="l00214"></a>00214                                       <a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> &L,
+<a name="l00215"></a>00215                                       <span class="keyword">const</span> BlockFilterSet &LoopBlockSet);
+<a name="l00216"></a>00216   <span class="keywordtype">void</span> buildLoopChains(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>, <a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> &L);
+<a name="l00217"></a>00217   <span class="keywordtype">void</span> rotateLoop(BlockChain &LoopChain, <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *ExitingBB,
+<a name="l00218"></a>00218                   <span class="keyword">const</span> BlockFilterSet &LoopBlockSet);
+<a name="l00219"></a>00219   <span class="keywordtype">void</span> buildCFGChains(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>);
+<a name="l00220"></a>00220 
+<a name="l00221"></a>00221 <span class="keyword">public</span>:
+<a name="l00222"></a>00222   <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>; <span class="comment">// Pass identification, replacement for typeid</span>
+<a name="l00223"></a>00223   MachineBlockPlacement() : <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a>(<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>) {
+<a name="l00224"></a>00224     <a class="code" href="namespacellvm.html#af3e08655b0654029c7cf037651c8d7d6">initializeMachineBlockPlacementPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00225"></a>00225   }
+<a name="l00226"></a>00226 
+<a name="l00227"></a>00227   <span class="keywordtype">bool</span> runOnMachineFunction(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>);
+<a name="l00228"></a>00228 
+<a name="l00229"></a>00229   <span class="keywordtype">void</span> getAnalysisUsage(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU)<span class="keyword"> const </span>{
+<a name="l00230"></a>00230     AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html">MachineBranchProbabilityInfo</a>>();
+<a name="l00231"></a>00231     AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1MachineBlockFrequencyInfo.html">MachineBlockFrequencyInfo</a>>();
+<a name="l00232"></a>00232     AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a>>();
+<a name="l00233"></a>00233     <a class="code" href="classllvm_1_1MachineFunctionPass.html#aa1eece37d175f86a6f4808c0c167f13b">MachineFunctionPass::getAnalysisUsage</a>(AU);
+<a name="l00234"></a>00234   }
+<a name="l00235"></a>00235 };
+<a name="l00236"></a>00236 }
+<a name="l00237"></a>00237 
+<a name="l00238"></a>00238 <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">MachineBlockPlacement::ID</a> = 0;
+<a name="l00239"></a><a class="code" href="namespacellvm.html#adc14e69cab3ee0a21fdfdd40632b7ee1">00239</a> <span class="keywordtype">char</span> &<a class="code" href="namespacellvm.html#adc14e69cab3ee0a21fdfdd40632b7ee1">llvm::MachineBlockPlacementID</a> = <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">MachineBlockPlacement::ID</a>;
+<a name="l00240"></a>00240 <a class="code" href="PassSupport_8h.html#aaa970fc931c1c63037a8182e028d04b1">INITIALIZE_PASS_BEGIN</a>(MachineBlockPlacement, <span class="stringliteral">"block-placement2"</span>,
+<a name="l00241"></a>00241                       <span class="stringliteral">"Branch Probability Basic Block Placement"</span>, <span class="keyword">false</span>, <span class="keyword">false</span>)
+<a name="l00242"></a>00242 <a class="code" href="PassSupport_8h.html#a14724f1ccf528e73bb29bc9230737967">INITIALIZE_PASS_DEPENDENCY</a>(<a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html">MachineBranchProbabilityInfo</a>)
+<a name="l00243"></a>00243 <a class="code" href="PassSupport_8h.html#a14724f1ccf528e73bb29bc9230737967">INITIALIZE_PASS_DEPENDENCY</a>(<a class="code" href="classllvm_1_1MachineBlockFrequencyInfo.html">MachineBlockFrequencyInfo</a>)
+<a name="l00244"></a>00244 <a class="code" href="PassSupport_8h.html#a14724f1ccf528e73bb29bc9230737967">INITIALIZE_PASS_DEPENDENCY</a>(<a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a>)
+<a name="l00245"></a><a class="code" href="MachineBlockPlacement_8cpp.html#a394ba4b4bfba86da3410230b136ed90b">00245</a> <a class="code" href="PassSupport_8h.html#a74ce8276b89067e806f67c45a6d92575">INITIALIZE_PASS_END</a>(MachineBlockPlacement, "block-<a class="code" href="MachineBlockPlacement_8cpp.html#a394ba4b4bfba86da3410230b136ed90b">placement2</a>",
+<a name="l00246"></a>00246                     "<a class="code" href="namespacellvm_1_1MCID.html#accb16fffd544529ed4d816a45e40f425a359237c780f7c8e40645575826da8a3c">Branch</a> Probability Basic Block <a class="code" href="MachineBlockPlacement_8cpp.html#a80e0b1823bee9dff0d9cbc44bc76b701">Placement</a>", <a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>, false)
+<a name="l00247"></a>00247 
+<a name="l00248"></a>00248 <span class="preprocessor">#ifndef NDEBUG</span>
+<a name="l00249"></a>00249 <span class="preprocessor"></span><span class="comment">/// \brief Helper to print the name of a MBB.</span>
+<a name="l00250"></a>00250 <span class="comment"></span><span class="comment">///</span>
+<a name="l00251"></a>00251 <span class="comment"></span><span class="comment">/// Only used by debug logging.</span>
+<a name="l00252"></a><a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78">00252</a> <span class="comment"></span><span class="keyword">static</span> std::string <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB) {
+<a name="l00253"></a>00253   std::string Result;
+<a name="l00254"></a>00254   <a class="code" href="classllvm_1_1raw__string__ostream.html">raw_string_ostream</a> OS(Result);
+<a name="l00255"></a>00255   OS << <span class="stringliteral">"BB#"</span> << BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6acda287e5c19ffb173b0bf8f1dd9c5e">getNumber</a>()
+<a name="l00256"></a>00256      << <span class="stringliteral">" (derived from LLVM BB '"</span> << BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a454838c989e99a86bd804e056c367bd9">getName</a>() << <span class="stringliteral">"')"</span>;
+<a name="l00257"></a>00257   OS.<a class="code" href="classllvm_1_1raw__ostream.html#a520bdf57dfe3e73abb53d482893f0a27">flush</a>();
+<a name="l00258"></a>00258   <span class="keywordflow">return</span> Result;
+<a name="l00259"></a>00259 }
+<a name="l00260"></a>00260 <span class="comment"></span>
+<a name="l00261"></a>00261 <span class="comment">/// \brief Helper to print the number of a MBB.</span>
+<a name="l00262"></a>00262 <span class="comment">///</span>
+<a name="l00263"></a>00263 <span class="comment">/// Only used by debug logging.</span>
+<a name="l00264"></a><a class="code" href="MachineBlockPlacement_8cpp.html#a16e802f1d512b19481a50b0e7d71eab5">00264</a> <span class="comment"></span><span class="keyword">static</span> std::string <a class="code" href="MachineBlockPlacement_8cpp.html#a16e802f1d512b19481a50b0e7d71eab5" title="Helper to print the number of a MBB.">getBlockNum</a>(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB) {
+<a name="l00265"></a>00265   std::string Result;
+<a name="l00266"></a>00266   <a class="code" href="classllvm_1_1raw__string__ostream.html">raw_string_ostream</a> OS(Result);
+<a name="l00267"></a>00267   OS << <span class="stringliteral">"BB#"</span> << BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6acda287e5c19ffb173b0bf8f1dd9c5e">getNumber</a>();
+<a name="l00268"></a>00268   OS.<a class="code" href="classllvm_1_1raw__ostream.html#a520bdf57dfe3e73abb53d482893f0a27">flush</a>();
+<a name="l00269"></a>00269   <span class="keywordflow">return</span> Result;
+<a name="l00270"></a>00270 }
+<a name="l00271"></a>00271 <span class="preprocessor">#endif</span>
+<a name="l00272"></a>00272 <span class="preprocessor"></span><span class="comment"></span>
+<a name="l00273"></a>00273 <span class="comment">/// \brief Mark a chain's successors as having one fewer preds.</span>
+<a name="l00274"></a>00274 <span class="comment">///</span>
+<a name="l00275"></a>00275 <span class="comment">/// When a chain is being merged into the "placed" chain, this routine will</span>
+<a name="l00276"></a>00276 <span class="comment">/// quickly walk the successors of each block in the chain and mark them as</span>
+<a name="l00277"></a>00277 <span class="comment">/// having one fewer active predecessor. It also adds any successors of this</span>
+<a name="l00278"></a>00278 <span class="comment">/// chain which reach the zero-predecessor state to the worklist passed in.</span>
+<a name="l00279"></a>00279 <span class="comment"></span><span class="keywordtype">void</span> MachineBlockPlacement::markChainSuccessors(
+<a name="l00280"></a>00280     BlockChain &Chain,
+<a name="l00281"></a>00281     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *LoopHeaderBB,
+<a name="l00282"></a>00282     <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<MachineBasicBlock *></a> &BlockWorkList,
+<a name="l00283"></a>00283     <span class="keyword">const</span> BlockFilterSet *BlockFilter) {
+<a name="l00284"></a>00284   <span class="comment">// Walk all the blocks in this chain, marking their successors as having</span>
+<a name="l00285"></a>00285   <span class="comment">// a predecessor placed.</span>
+<a name="l00286"></a>00286   <span class="keywordflow">for</span> (BlockChain::iterator CBI = Chain.begin(), CBE = Chain.end();
+<a name="l00287"></a>00287        CBI != CBE; ++CBI) {
+<a name="l00288"></a>00288     <span class="comment">// Add any successors for which this is the only un-placed in-loop</span>
+<a name="l00289"></a>00289     <span class="comment">// predecessor to the worklist as a viable candidate for CFG-neutral</span>
+<a name="l00290"></a>00290     <span class="comment">// placement. No subsequent placement of this block will violate the CFG</span>
+<a name="l00291"></a>00291     <span class="comment">// shape, so we get to use heuristics to choose a favorable placement.</span>
+<a name="l00292"></a>00292     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#aefba5f2af370add1bc8aaceedf7878ef">MachineBasicBlock::succ_iterator</a> SI = (*CBI)->succ_begin(),
+<a name="l00293"></a>00293                                           SE = (*CBI)->succ_end();
+<a name="l00294"></a>00294          SI != SE; ++SI) {
+<a name="l00295"></a>00295       <span class="keywordflow">if</span> (BlockFilter && !BlockFilter->count(*SI))
+<a name="l00296"></a>00296         <span class="keywordflow">continue</span>;
+<a name="l00297"></a>00297       BlockChain &SuccChain = *BlockToChain[*SI];
+<a name="l00298"></a>00298       <span class="comment">// Disregard edges within a fixed chain, or edges to the loop header.</span>
+<a name="l00299"></a>00299       <span class="keywordflow">if</span> (&Chain == &SuccChain || *SI == LoopHeaderBB)
+<a name="l00300"></a>00300         <span class="keywordflow">continue</span>;
+<a name="l00301"></a>00301 
+<a name="l00302"></a>00302       <span class="comment">// This is a cross-chain edge that is within the loop, so decrement the</span>
+<a name="l00303"></a>00303       <span class="comment">// loop predecessor count of the destination chain.</span>
+<a name="l00304"></a>00304       <span class="keywordflow">if</span> (SuccChain.LoopPredecessors > 0 && --SuccChain.LoopPredecessors == 0)
+<a name="l00305"></a>00305         BlockWorkList.<a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(*SuccChain.begin());
+<a name="l00306"></a>00306     }
+<a name="l00307"></a>00307   }
+<a name="l00308"></a>00308 }
+<a name="l00309"></a>00309 <span class="comment"></span>
+<a name="l00310"></a>00310 <span class="comment">/// \brief Select the best successor for a block.</span>
+<a name="l00311"></a>00311 <span class="comment">///</span>
+<a name="l00312"></a>00312 <span class="comment">/// This looks across all successors of a particular block and attempts to</span>
+<a name="l00313"></a>00313 <span class="comment">/// select the "best" one to be the layout successor. It only considers direct</span>
+<a name="l00314"></a>00314 <span class="comment">/// successors which also pass the block filter. It will attempt to avoid</span>
+<a name="l00315"></a>00315 <span class="comment">/// breaking CFG structure, but cave and break such structures in the case of</span>
+<a name="l00316"></a>00316 <span class="comment">/// very hot successor edges.</span>
+<a name="l00317"></a>00317 <span class="comment">///</span>
+<a name="l00318"></a>00318 <span class="comment">/// \returns The best successor block found, or null if none are viable.</span>
+<a name="l00319"></a>00319 <span class="comment"></span><a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MachineBlockPlacement::selectBestSuccessor(
+<a name="l00320"></a>00320     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB, BlockChain &Chain,
+<a name="l00321"></a>00321     <span class="keyword">const</span> BlockFilterSet *BlockFilter) {
+<a name="l00322"></a>00322   <span class="keyword">const</span> <a class="code" href="classllvm_1_1BranchProbability.html">BranchProbability</a> HotProb(4, 5); <span class="comment">// 80%</span>
+<a name="l00323"></a>00323 
+<a name="l00324"></a>00324   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BestSucc = 0;
+<a name="l00325"></a>00325   <span class="comment">// FIXME: Due to the performance of the probability and weight routines in</span>
+<a name="l00326"></a>00326   <span class="comment">// the MBPI analysis, we manually compute probabilities using the edge</span>
+<a name="l00327"></a>00327   <span class="comment">// weights. This is suboptimal as it means that the somewhat subtle</span>
+<a name="l00328"></a>00328   <span class="comment">// definition of edge weight semantics is encoded here as well. We should</span>
+<a name="l00329"></a>00329   <span class="comment">// improve the MBPI interface to efficiently support query patterns such as</span>
+<a name="l00330"></a>00330   <span class="comment">// this.</span>
+<a name="l00331"></a>00331   uint32_t BestWeight = 0;
+<a name="l00332"></a>00332   uint32_t WeightScale = 0;
+<a name="l00333"></a>00333   uint32_t SumWeight = MBPI->getSumForBlock(BB, WeightScale);
+<a name="l00334"></a>00334   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Attempting merge from: "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(BB) << <span class="stringliteral">"\n"</span>);
+<a name="l00335"></a>00335   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#aefba5f2af370add1bc8aaceedf7878ef">MachineBasicBlock::succ_iterator</a> SI = BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6321b189ea8fd5058663f8a87d6c23e9">succ_begin</a>(),
+<a name="l00336"></a>00336                                         SE = BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a3ddd708642d60c1661992ff8ba1b215d">succ_end</a>();
+<a name="l00337"></a>00337        SI != SE; ++SI) {
+<a name="l00338"></a>00338     <span class="keywordflow">if</span> (BlockFilter && !BlockFilter->count(*SI))
+<a name="l00339"></a>00339       <span class="keywordflow">continue</span>;
+<a name="l00340"></a>00340     BlockChain &SuccChain = *BlockToChain[*SI];
+<a name="l00341"></a>00341     <span class="keywordflow">if</span> (&SuccChain == &Chain) {
+<a name="l00342"></a>00342       <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"    "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*SI) << <span class="stringliteral">" -> Already merged!\n"</span>);
+<a name="l00343"></a>00343       <span class="keywordflow">continue</span>;
+<a name="l00344"></a>00344     }
+<a name="l00345"></a>00345     <span class="keywordflow">if</span> (*SI != *SuccChain.begin()) {
+<a name="l00346"></a>00346       <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"    "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*SI) << <span class="stringliteral">" -> Mid chain!\n"</span>);
+<a name="l00347"></a>00347       <span class="keywordflow">continue</span>;
+<a name="l00348"></a>00348     }
+<a name="l00349"></a>00349 
+<a name="l00350"></a>00350     uint32_t SuccWeight = MBPI->getEdgeWeight(BB, *SI);
+<a name="l00351"></a>00351     <a class="code" href="classllvm_1_1BranchProbability.html">BranchProbability</a> SuccProb(SuccWeight / WeightScale, SumWeight);
+<a name="l00352"></a>00352 
+<a name="l00353"></a>00353     <span class="comment">// Only consider successors which are either "hot", or wouldn't violate</span>
+<a name="l00354"></a>00354     <span class="comment">// any CFG constraints.</span>
+<a name="l00355"></a>00355     <span class="keywordflow">if</span> (SuccChain.LoopPredecessors != 0) {
+<a name="l00356"></a>00356       <span class="keywordflow">if</span> (SuccProb < HotProb) {
+<a name="l00357"></a>00357         <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"    "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*SI) << <span class="stringliteral">" -> CFG conflict\n"</span>);
+<a name="l00358"></a>00358         <span class="keywordflow">continue</span>;
+<a name="l00359"></a>00359       }
+<a name="l00360"></a>00360 
+<a name="l00361"></a>00361       <span class="comment">// Make sure that a hot successor doesn't have a globally more important</span>
+<a name="l00362"></a>00362       <span class="comment">// predecessor.</span>
+<a name="l00363"></a>00363       <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> CandidateEdgeFreq
+<a name="l00364"></a>00364         = MBFI->getBlockFreq(BB) * SuccProb * HotProb.getCompl();
+<a name="l00365"></a>00365       <span class="keywordtype">bool</span> BadCFGConflict = <span class="keyword">false</span>;
+<a name="l00366"></a>00366       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#a7e7a1a247b7725a24fe19a91f90782cc">MachineBasicBlock::pred_iterator</a> PI = (*SI)->pred_begin(),
+<a name="l00367"></a>00367                                             PE = (*SI)->pred_end();
+<a name="l00368"></a>00368            PI != PE; ++PI) {
+<a name="l00369"></a>00369         <span class="keywordflow">if</span> (*PI == *SI || (BlockFilter && !BlockFilter->count(*PI)) ||
+<a name="l00370"></a>00370             BlockToChain[*PI] == &Chain)
+<a name="l00371"></a>00371           <span class="keywordflow">continue</span>;
+<a name="l00372"></a>00372         <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> PredEdgeFreq
+<a name="l00373"></a>00373           = MBFI->getBlockFreq(*PI) * MBPI->getEdgeProbability(*PI, *SI);
+<a name="l00374"></a>00374         <span class="keywordflow">if</span> (PredEdgeFreq >= CandidateEdgeFreq) {
+<a name="l00375"></a>00375           BadCFGConflict = <span class="keyword">true</span>;
+<a name="l00376"></a>00376           <span class="keywordflow">break</span>;
+<a name="l00377"></a>00377         }
+<a name="l00378"></a>00378       }
+<a name="l00379"></a>00379       <span class="keywordflow">if</span> (BadCFGConflict) {
+<a name="l00380"></a>00380         <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"    "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*SI)
+<a name="l00381"></a>00381                                << <span class="stringliteral">" -> non-cold CFG conflict\n"</span>);
+<a name="l00382"></a>00382         <span class="keywordflow">continue</span>;
+<a name="l00383"></a>00383       }
+<a name="l00384"></a>00384     }
+<a name="l00385"></a>00385 
+<a name="l00386"></a>00386     <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"    "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*SI) << <span class="stringliteral">" -> "</span> << SuccProb
+<a name="l00387"></a>00387                  << <span class="stringliteral">" (prob)"</span>
+<a name="l00388"></a>00388                  << (SuccChain.LoopPredecessors != 0 ? <span class="stringliteral">" (CFG break)"</span> : <span class="stringliteral">""</span>)
+<a name="l00389"></a>00389                  << <span class="stringliteral">"\n"</span>);
+<a name="l00390"></a>00390     <span class="keywordflow">if</span> (BestSucc && BestWeight >= SuccWeight)
+<a name="l00391"></a>00391       <span class="keywordflow">continue</span>;
+<a name="l00392"></a>00392     BestSucc = *SI;
+<a name="l00393"></a>00393     BestWeight = SuccWeight;
+<a name="l00394"></a>00394   }
+<a name="l00395"></a>00395   <span class="keywordflow">return</span> BestSucc;
+<a name="l00396"></a>00396 }
+<a name="l00397"></a>00397 
+<a name="l00398"></a>00398 <span class="keyword">namespace </span>{<span class="comment"></span>
+<a name="l00399"></a>00399 <span class="comment">/// \brief Predicate struct to detect blocks already placed.</span>
+<a name="l00400"></a>00400 <span class="comment"></span><span class="keyword">class </span>IsBlockPlaced {
+<a name="l00401"></a>00401   <span class="keyword">const</span> BlockChain &PlacedChain;
+<a name="l00402"></a>00402   <span class="keyword">const</span> BlockToChainMapType &BlockToChain;
+<a name="l00403"></a>00403 
+<a name="l00404"></a>00404 <span class="keyword">public</span>:
+<a name="l00405"></a>00405   IsBlockPlaced(<span class="keyword">const</span> BlockChain &PlacedChain,
+<a name="l00406"></a>00406                 <span class="keyword">const</span> BlockToChainMapType &BlockToChain)
+<a name="l00407"></a>00407       : PlacedChain(PlacedChain), BlockToChain(BlockToChain) {}
+<a name="l00408"></a>00408 
+<a name="l00409"></a>00409   <span class="keywordtype">bool</span> operator()(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB)<span class="keyword"> const </span>{
+<a name="l00410"></a>00410     <span class="keywordflow">return</span> BlockToChain.lookup(BB) == &PlacedChain;
+<a name="l00411"></a>00411   }
+<a name="l00412"></a>00412 };
+<a name="l00413"></a>00413 }
+<a name="l00414"></a>00414 <span class="comment"></span>
+<a name="l00415"></a>00415 <span class="comment">/// \brief Select the best block from a worklist.</span>
+<a name="l00416"></a>00416 <span class="comment">///</span>
+<a name="l00417"></a>00417 <span class="comment">/// This looks through the provided worklist as a list of candidate basic</span>
+<a name="l00418"></a>00418 <span class="comment">/// blocks and select the most profitable one to place. The definition of</span>
+<a name="l00419"></a>00419 <span class="comment">/// profitable only really makes sense in the context of a loop. This returns</span>
+<a name="l00420"></a>00420 <span class="comment">/// the most frequently visited block in the worklist, which in the case of</span>
+<a name="l00421"></a>00421 <span class="comment">/// a loop, is the one most desirable to be physically close to the rest of the</span>
+<a name="l00422"></a>00422 <span class="comment">/// loop body in order to improve icache behavior.</span>
+<a name="l00423"></a>00423 <span class="comment">///</span>
+<a name="l00424"></a>00424 <span class="comment">/// \returns The best block found, or null if none are viable.</span>
+<a name="l00425"></a>00425 <span class="comment"></span><a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MachineBlockPlacement::selectBestCandidateBlock(
+<a name="l00426"></a>00426     BlockChain &Chain, <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<MachineBasicBlock *></a> &WorkList,
+<a name="l00427"></a>00427     <span class="keyword">const</span> BlockFilterSet *BlockFilter) {
+<a name="l00428"></a>00428   <span class="comment">// Once we need to walk the worklist looking for a candidate, cleanup the</span>
+<a name="l00429"></a>00429   <span class="comment">// worklist of already placed entries.</span>
+<a name="l00430"></a>00430   <span class="comment">// FIXME: If this shows up on profiles, it could be folded (at the cost of</span>
+<a name="l00431"></a>00431   <span class="comment">// some code complexity) into the loop below.</span>
+<a name="l00432"></a>00432   WorkList.<a class="code" href="classllvm_1_1SmallVectorImpl.html#a18c110c35e9133222a37b28d30f8a90f">erase</a>(std::remove_if(WorkList.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a8a045d250952c0867382a9840ee18fdf">begin</a>(), WorkList.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a075e34e98605d0e7c289763a104869ac">end</a>(),
+<a name="l00433"></a>00433                                 IsBlockPlaced(Chain, BlockToChain)),
+<a name="l00434"></a>00434                  WorkList.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a075e34e98605d0e7c289763a104869ac">end</a>());
+<a name="l00435"></a>00435 
+<a name="l00436"></a>00436   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BestBlock = 0;
+<a name="l00437"></a>00437   <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> BestFreq;
+<a name="l00438"></a>00438   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<MachineBasicBlock *>::iterator</a> WBI = WorkList.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a8a045d250952c0867382a9840ee18fdf">begin</a>(),
+<a name="l00439"></a>00439                                                       WBE = WorkList.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a075e34e98605d0e7c289763a104869ac">end</a>();
+<a name="l00440"></a>00440        WBI != WBE; ++WBI) {
+<a name="l00441"></a>00441     BlockChain &SuccChain = *BlockToChain[*WBI];
+<a name="l00442"></a>00442     <span class="keywordflow">if</span> (&SuccChain == &Chain) {
+<a name="l00443"></a>00443       <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"    "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*WBI)
+<a name="l00444"></a>00444                    << <span class="stringliteral">" -> Already merged!\n"</span>);
+<a name="l00445"></a>00445       <span class="keywordflow">continue</span>;
+<a name="l00446"></a>00446     }
+<a name="l00447"></a>00447     assert(SuccChain.LoopPredecessors == 0 && <span class="stringliteral">"Found CFG-violating block"</span>);
+<a name="l00448"></a>00448 
+<a name="l00449"></a>00449     <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> CandidateFreq = MBFI->getBlockFreq(*WBI);
+<a name="l00450"></a>00450     <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"    "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*WBI) << <span class="stringliteral">" -> "</span> << CandidateFreq
+<a name="l00451"></a>00451                  << <span class="stringliteral">" (freq)\n"</span>);
+<a name="l00452"></a>00452     <span class="keywordflow">if</span> (BestBlock && BestFreq >= CandidateFreq)
+<a name="l00453"></a>00453       <span class="keywordflow">continue</span>;
+<a name="l00454"></a>00454     BestBlock = *WBI;
+<a name="l00455"></a>00455     BestFreq = CandidateFreq;
+<a name="l00456"></a>00456   }
+<a name="l00457"></a>00457   <span class="keywordflow">return</span> BestBlock;
+<a name="l00458"></a>00458 }
+<a name="l00459"></a>00459 <span class="comment"></span>
+<a name="l00460"></a>00460 <span class="comment">/// \brief Retrieve the first unplaced basic block.</span>
+<a name="l00461"></a>00461 <span class="comment">///</span>
+<a name="l00462"></a>00462 <span class="comment">/// This routine is called when we are unable to use the CFG to walk through</span>
+<a name="l00463"></a>00463 <span class="comment">/// all of the basic blocks and form a chain due to unnatural loops in the CFG.</span>
+<a name="l00464"></a>00464 <span class="comment">/// We walk through the function's blocks in order, starting from the</span>
+<a name="l00465"></a>00465 <span class="comment">/// LastUnplacedBlockIt. We update this iterator on each call to avoid</span>
+<a name="l00466"></a>00466 <span class="comment">/// re-scanning the entire sequence on repeated calls to this routine.</span>
+<a name="l00467"></a>00467 <span class="comment"></span><a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MachineBlockPlacement::getFirstUnplacedBlock(
+<a name="l00468"></a>00468     <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>, <span class="keyword">const</span> BlockChain &PlacedChain,
+<a name="l00469"></a>00469     <a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a> &PrevUnplacedBlockIt,
+<a name="l00470"></a>00470     <span class="keyword">const</span> BlockFilterSet *BlockFilter) {
+<a name="l00471"></a>00471   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = PrevUnplacedBlockIt, E = F.<a class="code" href="classllvm_1_1MachineFunction.html#a9d017af749f76484cb9aec9ff6e4330c">end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E;
+<a name="l00472"></a>00472        ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00473"></a>00473     <span class="keywordflow">if</span> (BlockFilter && !BlockFilter->count(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>))
+<a name="l00474"></a>00474       <span class="keywordflow">continue</span>;
+<a name="l00475"></a>00475     <span class="keywordflow">if</span> (BlockToChain[<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>] != &PlacedChain) {
+<a name="l00476"></a>00476       PrevUnplacedBlockIt = <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00477"></a>00477       <span class="comment">// Now select the head of the chain to which the unplaced block belongs</span>
+<a name="l00478"></a>00478       <span class="comment">// as the block to place. This will force the entire chain to be placed,</span>
+<a name="l00479"></a>00479       <span class="comment">// and satisfies the requirements of merging chains.</span>
+<a name="l00480"></a>00480       <span class="keywordflow">return</span> *BlockToChain[<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>]->begin();
+<a name="l00481"></a>00481     }
+<a name="l00482"></a>00482   }
+<a name="l00483"></a>00483   <span class="keywordflow">return</span> 0;
+<a name="l00484"></a>00484 }
+<a name="l00485"></a>00485 
+<a name="l00486"></a>00486 <span class="keywordtype">void</span> MachineBlockPlacement::buildChain(
+<a name="l00487"></a>00487     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB,
+<a name="l00488"></a>00488     BlockChain &Chain,
+<a name="l00489"></a>00489     <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<MachineBasicBlock *></a> &BlockWorkList,
+<a name="l00490"></a>00490     <span class="keyword">const</span> BlockFilterSet *BlockFilter) {
+<a name="l00491"></a>00491   assert(BB);
+<a name="l00492"></a>00492   assert(BlockToChain[BB] == &Chain);
+<a name="l00493"></a>00493   <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &F = *BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#af2e482ff2a9253ec6bc2285491496bd6">getParent</a>();
+<a name="l00494"></a>00494   <a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a> PrevUnplacedBlockIt = F.<a class="code" href="classllvm_1_1MachineFunction.html#ab0789854909cf47f640a85fa2bac29c7">begin</a>();
+<a name="l00495"></a>00495 
+<a name="l00496"></a>00496   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *LoopHeaderBB = BB;
+<a name="l00497"></a>00497   markChainSuccessors(Chain, LoopHeaderBB, BlockWorkList, BlockFilter);
+<a name="l00498"></a>00498   BB = *<a class="code" href="namespacellvm.html#a7923e3e207de8bc1d0d6a5091316ddde">llvm::prior</a>(Chain.end());
+<a name="l00499"></a>00499   <span class="keywordflow">for</span> (;;) {
+<a name="l00500"></a>00500     assert(BB);
+<a name="l00501"></a>00501     assert(BlockToChain[BB] == &Chain);
+<a name="l00502"></a>00502     assert(*<a class="code" href="namespacellvm.html#a7923e3e207de8bc1d0d6a5091316ddde">llvm::prior</a>(Chain.end()) == BB);
+<a name="l00503"></a>00503 
+<a name="l00504"></a>00504     <span class="comment">// Look for the best viable successor if there is one to place immediately</span>
+<a name="l00505"></a>00505     <span class="comment">// after this block.</span>
+<a name="l00506"></a>00506     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BestSucc = selectBestSuccessor(BB, Chain, BlockFilter);
+<a name="l00507"></a>00507 
+<a name="l00508"></a>00508     <span class="comment">// If an immediate successor isn't available, look for the best viable</span>
+<a name="l00509"></a>00509     <span class="comment">// block among those we've identified as not violating the loop's CFG at</span>
+<a name="l00510"></a>00510     <span class="comment">// this point. This won't be a fallthrough, but it will increase locality.</span>
+<a name="l00511"></a>00511     <span class="keywordflow">if</span> (!BestSucc)
+<a name="l00512"></a>00512       BestSucc = selectBestCandidateBlock(Chain, BlockWorkList, BlockFilter);
+<a name="l00513"></a>00513 
+<a name="l00514"></a>00514     <span class="keywordflow">if</span> (!BestSucc) {
+<a name="l00515"></a>00515       BestSucc = getFirstUnplacedBlock(F, Chain, PrevUnplacedBlockIt,
+<a name="l00516"></a>00516                                        BlockFilter);
+<a name="l00517"></a>00517       <span class="keywordflow">if</span> (!BestSucc)
+<a name="l00518"></a>00518         <span class="keywordflow">break</span>;
+<a name="l00519"></a>00519 
+<a name="l00520"></a>00520       <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Unnatural loop CFG detected, forcibly merging the "</span>
+<a name="l00521"></a>00521                       <span class="stringliteral">"layout successor until the CFG reduces\n"</span>);
+<a name="l00522"></a>00522     }
+<a name="l00523"></a>00523 
+<a name="l00524"></a>00524     <span class="comment">// Place this block, updating the datastructures to reflect its placement.</span>
+<a name="l00525"></a>00525     BlockChain &SuccChain = *BlockToChain[BestSucc];
+<a name="l00526"></a>00526     <span class="comment">// Zero out LoopPredecessors for the successor we're about to merge in case</span>
+<a name="l00527"></a>00527     <span class="comment">// we selected a successor that didn't fit naturally into the CFG.</span>
+<a name="l00528"></a>00528     SuccChain.LoopPredecessors = 0;
+<a name="l00529"></a>00529     <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Merging from "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a16e802f1d512b19481a50b0e7d71eab5" title="Helper to print the number of a MBB.">getBlockNum</a>(BB)
+<a name="l00530"></a>00530                  << <span class="stringliteral">" to "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a16e802f1d512b19481a50b0e7d71eab5" title="Helper to print the number of a MBB.">getBlockNum</a>(BestSucc) << <span class="stringliteral">"\n"</span>);
+<a name="l00531"></a>00531     markChainSuccessors(SuccChain, LoopHeaderBB, BlockWorkList, BlockFilter);
+<a name="l00532"></a>00532     Chain.merge(BestSucc, &SuccChain);
+<a name="l00533"></a>00533     BB = *<a class="code" href="namespacellvm.html#a7923e3e207de8bc1d0d6a5091316ddde">llvm::prior</a>(Chain.end());
+<a name="l00534"></a>00534   }
+<a name="l00535"></a>00535 
+<a name="l00536"></a>00536   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Finished forming chain for header block "</span>
+<a name="l00537"></a>00537                << <a class="code" href="MachineBlockPlacement_8cpp.html#a16e802f1d512b19481a50b0e7d71eab5" title="Helper to print the number of a MBB.">getBlockNum</a>(*Chain.begin()) << <span class="stringliteral">"\n"</span>);
+<a name="l00538"></a>00538 }
+<a name="l00539"></a>00539 <span class="comment"></span>
+<a name="l00540"></a>00540 <span class="comment">/// \brief Find the best loop top block for layout.</span>
+<a name="l00541"></a>00541 <span class="comment">///</span>
+<a name="l00542"></a>00542 <span class="comment">/// Look for a block which is strictly better than the loop header for laying</span>
+<a name="l00543"></a>00543 <span class="comment">/// out at the top of the loop. This looks for one and only one pattern:</span>
+<a name="l00544"></a>00544 <span class="comment">/// a latch block with no conditional exit. This block will cause a conditional</span>
+<a name="l00545"></a>00545 <span class="comment">/// jump around it or will be the bottom of the loop if we lay it out in place,</span>
+<a name="l00546"></a>00546 <span class="comment">/// but if it it doesn't end up at the bottom of the loop for any reason,</span>
+<a name="l00547"></a>00547 <span class="comment">/// rotation alone won't fix it. Because such a block will always result in an</span>
+<a name="l00548"></a>00548 <span class="comment">/// unconditional jump (for the backedge) rotating it in front of the loop</span>
+<a name="l00549"></a>00549 <span class="comment">/// header is always profitable.</span>
+<a name="l00550"></a>00550 <span class="comment"></span><a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *
+<a name="l00551"></a>00551 MachineBlockPlacement::findBestLoopTop(<a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> &L,
+<a name="l00552"></a>00552                                        <span class="keyword">const</span> BlockFilterSet &LoopBlockSet) {
+<a name="l00553"></a>00553   <span class="comment">// Check that the header hasn't been fused with a preheader block due to</span>
+<a name="l00554"></a>00554   <span class="comment">// crazy branches. If it has, we need to start with the header at the top to</span>
+<a name="l00555"></a>00555   <span class="comment">// prevent pulling the preheader into the loop body.</span>
+<a name="l00556"></a>00556   BlockChain &HeaderChain = *BlockToChain[L.<a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>()];
+<a name="l00557"></a>00557   <span class="keywordflow">if</span> (!LoopBlockSet.count(*HeaderChain.begin()))
+<a name="l00558"></a>00558     <span class="keywordflow">return</span> L.<a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>();
+<a name="l00559"></a>00559 
+<a name="l00560"></a>00560   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Finding best loop top for: "</span>
+<a name="l00561"></a>00561                << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(L.<a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>()) << <span class="stringliteral">"\n"</span>);
+<a name="l00562"></a>00562 
+<a name="l00563"></a>00563   <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> BestPredFreq;
+<a name="l00564"></a>00564   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BestPred = 0;
+<a name="l00565"></a>00565   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#a7e7a1a247b7725a24fe19a91f90782cc">MachineBasicBlock::pred_iterator</a> PI = L.<a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>()-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ab644fcf07a4c2708333cf66276282357">pred_begin</a>(),
+<a name="l00566"></a>00566                                         PE = L.<a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>()-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a0359a738e0412c5a7ea55d61175e0661">pred_end</a>();
+<a name="l00567"></a>00567        PI != PE; ++PI) {
+<a name="l00568"></a>00568     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Pred = *PI;
+<a name="l00569"></a>00569     <span class="keywordflow">if</span> (!LoopBlockSet.count(Pred))
+<a name="l00570"></a>00570       <span class="keywordflow">continue</span>;
+<a name="l00571"></a>00571     <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"    header pred: "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(Pred) << <span class="stringliteral">", "</span>
+<a name="l00572"></a>00572                  << Pred-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a9ac05913a143322136efcad10ed7548c">succ_size</a>() << <span class="stringliteral">" successors, "</span>
+<a name="l00573"></a>00573                  << MBFI->getBlockFreq(Pred) << <span class="stringliteral">" freq\n"</span>);
+<a name="l00574"></a>00574     <span class="keywordflow">if</span> (Pred-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a9ac05913a143322136efcad10ed7548c">succ_size</a>() > 1)
+<a name="l00575"></a>00575       <span class="keywordflow">continue</span>;
+<a name="l00576"></a>00576 
+<a name="l00577"></a>00577     <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> PredFreq = MBFI->getBlockFreq(Pred);
+<a name="l00578"></a>00578     <span class="keywordflow">if</span> (!BestPred || PredFreq > BestPredFreq ||
+<a name="l00579"></a>00579         (!(PredFreq < BestPredFreq) &&
+<a name="l00580"></a>00580          Pred-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a0fc7a349a4ab737607def6cb461791fd">isLayoutSuccessor</a>(L.<a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>()))) {
+<a name="l00581"></a>00581       BestPred = Pred;
+<a name="l00582"></a>00582       BestPredFreq = PredFreq;
+<a name="l00583"></a>00583     }
+<a name="l00584"></a>00584   }
+<a name="l00585"></a>00585 
+<a name="l00586"></a>00586   <span class="comment">// If no direct predecessor is fine, just use the loop header.</span>
+<a name="l00587"></a>00587   <span class="keywordflow">if</span> (!BestPred)
+<a name="l00588"></a>00588     <span class="keywordflow">return</span> L.<a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>();
+<a name="l00589"></a>00589 
+<a name="l00590"></a>00590   <span class="comment">// Walk backwards through any straight line of predecessors.</span>
+<a name="l00591"></a>00591   <span class="keywordflow">while</span> (BestPred-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ac9786455bc217ebd35377bb5d5ec8f20">pred_size</a>() == 1 &&
+<a name="l00592"></a>00592          (*BestPred-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ab644fcf07a4c2708333cf66276282357">pred_begin</a>())->succ_size() == 1 &&
+<a name="l00593"></a>00593          *BestPred-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ab644fcf07a4c2708333cf66276282357">pred_begin</a>() != L.<a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>())
+<a name="l00594"></a>00594     BestPred = *BestPred-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ab644fcf07a4c2708333cf66276282357">pred_begin</a>();
+<a name="l00595"></a>00595 
+<a name="l00596"></a>00596   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"    final top: "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(BestPred) << <span class="stringliteral">"\n"</span>);
+<a name="l00597"></a>00597   <span class="keywordflow">return</span> BestPred;
+<a name="l00598"></a>00598 }
+<a name="l00599"></a>00599 
+<a name="l00600"></a>00600 <span class="comment"></span>
+<a name="l00601"></a>00601 <span class="comment">/// \brief Find the best loop exiting block for layout.</span>
+<a name="l00602"></a>00602 <span class="comment">///</span>
+<a name="l00603"></a>00603 <span class="comment">/// This routine implements the logic to analyze the loop looking for the best</span>
+<a name="l00604"></a>00604 <span class="comment">/// block to layout at the top of the loop. Typically this is done to maximize</span>
+<a name="l00605"></a>00605 <span class="comment">/// fallthrough opportunities.</span>
+<a name="l00606"></a>00606 <span class="comment"></span><a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *
+<a name="l00607"></a>00607 MachineBlockPlacement::findBestLoopExit(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &F,
+<a name="l00608"></a>00608                                         <a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> &L,
+<a name="l00609"></a>00609                                         <span class="keyword">const</span> BlockFilterSet &LoopBlockSet) {
+<a name="l00610"></a>00610   <span class="comment">// We don't want to layout the loop linearly in all cases. If the loop header</span>
+<a name="l00611"></a>00611   <span class="comment">// is just a normal basic block in the loop, we want to look for what block</span>
+<a name="l00612"></a>00612   <span class="comment">// within the loop is the best one to layout at the top. However, if the loop</span>
+<a name="l00613"></a>00613   <span class="comment">// header has be pre-merged into a chain due to predecessors not having</span>
+<a name="l00614"></a>00614   <span class="comment">// analyzable branches, *and* the predecessor it is merged with is *not* part</span>
+<a name="l00615"></a>00615   <span class="comment">// of the loop, rotating the header into the middle of the loop will create</span>
+<a name="l00616"></a>00616   <span class="comment">// a non-contiguous range of blocks which is Very Bad. So start with the</span>
+<a name="l00617"></a>00617   <span class="comment">// header and only rotate if safe.</span>
+<a name="l00618"></a>00618   BlockChain &HeaderChain = *BlockToChain[L.<a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>()];
+<a name="l00619"></a>00619   <span class="keywordflow">if</span> (!LoopBlockSet.count(*HeaderChain.begin()))
+<a name="l00620"></a>00620     <span class="keywordflow">return</span> 0;
+<a name="l00621"></a>00621 
+<a name="l00622"></a>00622   <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> BestExitEdgeFreq;
+<a name="l00623"></a>00623   <span class="keywordtype">unsigned</span> BestExitLoopDepth = 0;
+<a name="l00624"></a>00624   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *ExitingBB = 0;
+<a name="l00625"></a>00625   <span class="comment">// If there are exits to outer loops, loop rotation can severely limit</span>
+<a name="l00626"></a>00626   <span class="comment">// fallthrough opportunites unless it selects such an exit. Keep a set of</span>
+<a name="l00627"></a>00627   <span class="comment">// blocks where rotating to exit with that block will reach an outer loop.</span>
+<a name="l00628"></a>00628   <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<MachineBasicBlock *, 4></a> BlocksExitingToOuterLoop;
+<a name="l00629"></a>00629 
+<a name="l00630"></a>00630   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Finding best loop exit for: "</span>
+<a name="l00631"></a>00631                << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(L.<a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>()) << <span class="stringliteral">"\n"</span>);
+<a name="l00632"></a>00632   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1LoopBase.html#ab39f9623eaa8cd22213aa716c6fb9994">MachineLoop::block_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = L.<a class="code" href="classllvm_1_1LoopBase.html#a3df1c508a7b1c89247367cab269076e2">block_begin</a>(),
+<a name="l00633"></a>00633                                    E = L.<a class="code" href="classllvm_1_1LoopBase.html#a91e3f5f9bf6ecbd058624a479e150603">block_end</a>();
+<a name="l00634"></a>00634        <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00635"></a>00635     BlockChain &Chain = *BlockToChain[*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>];
+<a name="l00636"></a>00636     <span class="comment">// Ensure that this block is at the end of a chain; otherwise it could be</span>
+<a name="l00637"></a>00637     <span class="comment">// mid-way through an inner loop or a successor of an analyzable branch.</span>
+<a name="l00638"></a>00638     <span class="keywordflow">if</span> (*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != *<a class="code" href="namespacellvm.html#a7923e3e207de8bc1d0d6a5091316ddde">llvm::prior</a>(Chain.end()))
+<a name="l00639"></a>00639       <span class="keywordflow">continue</span>;
+<a name="l00640"></a>00640 
+<a name="l00641"></a>00641     <span class="comment">// Now walk the successors. We need to establish whether this has a viable</span>
+<a name="l00642"></a>00642     <span class="comment">// exiting successor and whether it has a viable non-exiting successor.</span>
+<a name="l00643"></a>00643     <span class="comment">// We store the old exiting state and restore it if a viable looping</span>
+<a name="l00644"></a>00644     <span class="comment">// successor isn't found.</span>
+<a name="l00645"></a>00645     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *OldExitingBB = ExitingBB;
+<a name="l00646"></a>00646     <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> OldBestExitEdgeFreq = BestExitEdgeFreq;
+<a name="l00647"></a>00647     <span class="keywordtype">bool</span> HasLoopingSucc = <span class="keyword">false</span>;
+<a name="l00648"></a>00648     <span class="comment">// FIXME: Due to the performance of the probability and weight routines in</span>
+<a name="l00649"></a>00649     <span class="comment">// the MBPI analysis, we use the internal weights and manually compute the</span>
+<a name="l00650"></a>00650     <span class="comment">// probabilities to avoid quadratic behavior.</span>
+<a name="l00651"></a>00651     uint32_t WeightScale = 0;
+<a name="l00652"></a>00652     uint32_t SumWeight = MBPI->getSumForBlock(*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>, WeightScale);
+<a name="l00653"></a>00653     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#aefba5f2af370add1bc8aaceedf7878ef">MachineBasicBlock::succ_iterator</a> SI = (*I)->succ_begin(),
+<a name="l00654"></a>00654                                           SE = (*I)->succ_end();
+<a name="l00655"></a>00655          SI != SE; ++SI) {
+<a name="l00656"></a>00656       <span class="keywordflow">if</span> ((*SI)->isLandingPad())
+<a name="l00657"></a>00657         <span class="keywordflow">continue</span>;
+<a name="l00658"></a>00658       <span class="keywordflow">if</span> (*SI == *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00659"></a>00659         <span class="keywordflow">continue</span>;
+<a name="l00660"></a>00660       BlockChain &SuccChain = *BlockToChain[*SI];
+<a name="l00661"></a>00661       <span class="comment">// Don't split chains, either this chain or the successor's chain.</span>
+<a name="l00662"></a>00662       <span class="keywordflow">if</span> (&Chain == &SuccChain) {
+<a name="l00663"></a>00663         <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"    exiting: "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) << <span class="stringliteral">" -> "</span>
+<a name="l00664"></a>00664                      << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*SI) << <span class="stringliteral">" (chain conflict)\n"</span>);
+<a name="l00665"></a>00665         <span class="keywordflow">continue</span>;
+<a name="l00666"></a>00666       }
+<a name="l00667"></a>00667 
+<a name="l00668"></a>00668       uint32_t SuccWeight = MBPI->getEdgeWeight(*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>, *SI);
+<a name="l00669"></a>00669       <span class="keywordflow">if</span> (LoopBlockSet.count(*SI)) {
+<a name="l00670"></a>00670         <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"    looping: "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) << <span class="stringliteral">" -> "</span>
+<a name="l00671"></a>00671                      << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*SI) << <span class="stringliteral">" ("</span> << SuccWeight << <span class="stringliteral">")\n"</span>);
+<a name="l00672"></a>00672         HasLoopingSucc = <span class="keyword">true</span>;
+<a name="l00673"></a>00673         <span class="keywordflow">continue</span>;
+<a name="l00674"></a>00674       }
+<a name="l00675"></a>00675 
+<a name="l00676"></a>00676       <span class="keywordtype">unsigned</span> SuccLoopDepth = 0;
+<a name="l00677"></a>00677       <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> *ExitLoop = MLI->getLoopFor(*SI)) {
+<a name="l00678"></a>00678         SuccLoopDepth = ExitLoop->getLoopDepth();
+<a name="l00679"></a>00679         <span class="keywordflow">if</span> (ExitLoop->contains(&L))
+<a name="l00680"></a>00680           BlocksExitingToOuterLoop.<a class="code" href="classllvm_1_1SmallPtrSet.html#a9b6dd0fc7a648a939e571246045b673e">insert</a>(*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l00681"></a>00681       }
+<a name="l00682"></a>00682 
+<a name="l00683"></a>00683       <a class="code" href="classllvm_1_1BranchProbability.html">BranchProbability</a> SuccProb(SuccWeight / WeightScale, SumWeight);
+<a name="l00684"></a>00684       <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> ExitEdgeFreq = MBFI->getBlockFreq(*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) * SuccProb;
+<a name="l00685"></a>00685       <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"    exiting: "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) << <span class="stringliteral">" -> "</span>
+<a name="l00686"></a>00686                    << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*SI) << <span class="stringliteral">" [L:"</span> << SuccLoopDepth
+<a name="l00687"></a>00687                    << <span class="stringliteral">"] ("</span> << ExitEdgeFreq << <span class="stringliteral">")\n"</span>);
+<a name="l00688"></a>00688       <span class="comment">// Note that we slightly bias this toward an existing layout successor to</span>
+<a name="l00689"></a>00689       <span class="comment">// retain incoming order in the absence of better information.</span>
+<a name="l00690"></a>00690       <span class="comment">// FIXME: Should we bias this more strongly? It's pretty weak.</span>
+<a name="l00691"></a>00691       <span class="keywordflow">if</span> (!ExitingBB || BestExitLoopDepth < SuccLoopDepth ||
+<a name="l00692"></a>00692           ExitEdgeFreq > BestExitEdgeFreq ||
+<a name="l00693"></a>00693           ((*I)->isLayoutSuccessor(*SI) &&
+<a name="l00694"></a>00694            !(ExitEdgeFreq < BestExitEdgeFreq))) {
+<a name="l00695"></a>00695         BestExitEdgeFreq = ExitEdgeFreq;
+<a name="l00696"></a>00696         ExitingBB = *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00697"></a>00697       }
+<a name="l00698"></a>00698     }
+<a name="l00699"></a>00699 
+<a name="l00700"></a>00700     <span class="comment">// Restore the old exiting state, no viable looping successor was found.</span>
+<a name="l00701"></a>00701     <span class="keywordflow">if</span> (!HasLoopingSucc) {
+<a name="l00702"></a>00702       ExitingBB = OldExitingBB;
+<a name="l00703"></a>00703       BestExitEdgeFreq = OldBestExitEdgeFreq;
+<a name="l00704"></a>00704       <span class="keywordflow">continue</span>;
+<a name="l00705"></a>00705     }
+<a name="l00706"></a>00706   }
+<a name="l00707"></a>00707   <span class="comment">// Without a candidate exiting block or with only a single block in the</span>
+<a name="l00708"></a>00708   <span class="comment">// loop, just use the loop header to layout the loop.</span>
+<a name="l00709"></a>00709   <span class="keywordflow">if</span> (!ExitingBB || L.<a class="code" href="classllvm_1_1LoopBase.html#a9a89d64fefa63ff782d8f29e53a01873" title="getNumBlocks - Get the number of blocks in this loop in constant time.">getNumBlocks</a>() == 1)
+<a name="l00710"></a>00710     <span class="keywordflow">return</span> 0;
+<a name="l00711"></a>00711 
+<a name="l00712"></a>00712   <span class="comment">// Also, if we have exit blocks which lead to outer loops but didn't select</span>
+<a name="l00713"></a>00713   <span class="comment">// one of them as the exiting block we are rotating toward, disable loop</span>
+<a name="l00714"></a>00714   <span class="comment">// rotation altogether.</span>
+<a name="l00715"></a>00715   <span class="keywordflow">if</span> (!BlocksExitingToOuterLoop.<a class="code" href="classllvm_1_1SmallPtrSetImpl.html#a956ca8bb95132e0131135d47a2d1f255">empty</a>() &&
+<a name="l00716"></a>00716       !BlocksExitingToOuterLoop.<a class="code" href="classllvm_1_1SmallPtrSet.html#a2ced6343b8ad006a757059554bbf9f37" title="count - Return true if the specified pointer is in the set.">count</a>(ExitingBB))
+<a name="l00717"></a>00717     <span class="keywordflow">return</span> 0;
+<a name="l00718"></a>00718 
+<a name="l00719"></a>00719   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"  Best exiting block: "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(ExitingBB) << <span class="stringliteral">"\n"</span>);
+<a name="l00720"></a>00720   <span class="keywordflow">return</span> ExitingBB;
+<a name="l00721"></a>00721 }
+<a name="l00722"></a>00722 <span class="comment"></span>
+<a name="l00723"></a>00723 <span class="comment">/// \brief Attempt to rotate an exiting block to the bottom of the loop.</span>
+<a name="l00724"></a>00724 <span class="comment">///</span>
+<a name="l00725"></a>00725 <span class="comment">/// Once we have built a chain, try to rotate it to line up the hot exit block</span>
+<a name="l00726"></a>00726 <span class="comment">/// with fallthrough out of the loop if doing so doesn't introduce unnecessary</span>
+<a name="l00727"></a>00727 <span class="comment">/// branches. For example, if the loop has fallthrough into its header and out</span>
+<a name="l00728"></a>00728 <span class="comment">/// of its bottom already, don't rotate it.</span>
+<a name="l00729"></a>00729 <span class="comment"></span><span class="keywordtype">void</span> MachineBlockPlacement::rotateLoop(BlockChain &LoopChain,
+<a name="l00730"></a>00730                                        <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *ExitingBB,
+<a name="l00731"></a>00731                                        <span class="keyword">const</span> BlockFilterSet &LoopBlockSet) {
+<a name="l00732"></a>00732   <span class="keywordflow">if</span> (!ExitingBB)
+<a name="l00733"></a>00733     <span class="keywordflow">return</span>;
+<a name="l00734"></a>00734 
+<a name="l00735"></a>00735   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Top = *LoopChain.begin();
+<a name="l00736"></a>00736   <span class="keywordtype">bool</span> ViableTopFallthrough = <span class="keyword">false</span>;
+<a name="l00737"></a>00737   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#a7e7a1a247b7725a24fe19a91f90782cc">MachineBasicBlock::pred_iterator</a> PI = Top-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ab644fcf07a4c2708333cf66276282357">pred_begin</a>(),
+<a name="l00738"></a>00738                                         PE = Top-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a0359a738e0412c5a7ea55d61175e0661">pred_end</a>();
+<a name="l00739"></a>00739        PI != PE; ++PI) {
+<a name="l00740"></a>00740     BlockChain *PredChain = BlockToChain[*PI];
+<a name="l00741"></a>00741     <span class="keywordflow">if</span> (!LoopBlockSet.count(*PI) &&
+<a name="l00742"></a>00742         (!PredChain || *PI == *<a class="code" href="namespacellvm.html#a7923e3e207de8bc1d0d6a5091316ddde">llvm::prior</a>(PredChain->end()))) {
+<a name="l00743"></a>00743       ViableTopFallthrough = <span class="keyword">true</span>;
+<a name="l00744"></a>00744       <span class="keywordflow">break</span>;
+<a name="l00745"></a>00745     }
+<a name="l00746"></a>00746   }
+<a name="l00747"></a>00747 
+<a name="l00748"></a>00748   <span class="comment">// If the header has viable fallthrough, check whether the current loop</span>
+<a name="l00749"></a>00749   <span class="comment">// bottom is a viable exiting block. If so, bail out as rotating will</span>
+<a name="l00750"></a>00750   <span class="comment">// introduce an unnecessary branch.</span>
+<a name="l00751"></a>00751   <span class="keywordflow">if</span> (ViableTopFallthrough) {
+<a name="l00752"></a>00752     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Bottom = *<a class="code" href="namespacellvm.html#a7923e3e207de8bc1d0d6a5091316ddde">llvm::prior</a>(LoopChain.end());
+<a name="l00753"></a>00753     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#aefba5f2af370add1bc8aaceedf7878ef">MachineBasicBlock::succ_iterator</a> SI = Bottom-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6321b189ea8fd5058663f8a87d6c23e9">succ_begin</a>(),
+<a name="l00754"></a>00754                                           SE = Bottom-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a3ddd708642d60c1661992ff8ba1b215d">succ_end</a>();
+<a name="l00755"></a>00755          SI != SE; ++SI) {
+<a name="l00756"></a>00756       BlockChain *SuccChain = BlockToChain[*SI];
+<a name="l00757"></a>00757       <span class="keywordflow">if</span> (!LoopBlockSet.count(*SI) &&
+<a name="l00758"></a>00758           (!SuccChain || *SI == *SuccChain->begin()))
+<a name="l00759"></a>00759         <span class="keywordflow">return</span>;
+<a name="l00760"></a>00760     }
+<a name="l00761"></a>00761   }
+<a name="l00762"></a>00762 
+<a name="l00763"></a>00763   BlockChain::iterator ExitIt = std::find(LoopChain.begin(), LoopChain.end(),
+<a name="l00764"></a>00764                                           ExitingBB);
+<a name="l00765"></a>00765   <span class="keywordflow">if</span> (ExitIt == LoopChain.end())
+<a name="l00766"></a>00766     <span class="keywordflow">return</span>;
+<a name="l00767"></a>00767 
+<a name="l00768"></a>00768   <a class="code" href="namespacellvm_1_1hashing_1_1detail.html#a4ffb910d18d978660569ea44ac87e494" title="Bitwise right rotate. Normally this will compile to a single instruction, especially if the shift is ...">std::rotate</a>(LoopChain.begin(), <a class="code" href="namespacellvm.html#aa1704159f75e6eacd595962ea6d93ffe">llvm::next</a>(ExitIt), LoopChain.end());
+<a name="l00769"></a>00769 }
+<a name="l00770"></a>00770 <span class="comment"></span>
+<a name="l00771"></a>00771 <span class="comment">/// \brief Forms basic block chains from the natural loop structures.</span>
+<a name="l00772"></a>00772 <span class="comment">///</span>
+<a name="l00773"></a>00773 <span class="comment">/// These chains are designed to preserve the existing *structure* of the code</span>
+<a name="l00774"></a>00774 <span class="comment">/// as much as possible. We can then stitch the chains together in a way which</span>
+<a name="l00775"></a>00775 <span class="comment">/// both preserves the topological structure and minimizes taken conditional</span>
+<a name="l00776"></a>00776 <span class="comment">/// branches.</span>
+<a name="l00777"></a>00777 <span class="comment"></span><span class="keywordtype">void</span> MachineBlockPlacement::buildLoopChains(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &F,
+<a name="l00778"></a>00778                                             <a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> &L) {
+<a name="l00779"></a>00779   <span class="comment">// First recurse through any nested loops, building chains for those inner</span>
+<a name="l00780"></a>00780   <span class="comment">// loops.</span>
+<a name="l00781"></a>00781   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1LoopBase.html#a4b2d2c2ddd3ccf5630c18731a162977d">MachineLoop::iterator</a> <a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a> = L.<a class="code" href="classllvm_1_1LoopBase.html#a22b3e904c08bd922efd707282aed89d9">begin</a>(), <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6a59df2d2242b1477e41d1d160980ed371">LE</a> = L.<a class="code" href="classllvm_1_1LoopBase.html#a5a3b8a8269ba0c61102f71a2a3bd42cd">end</a>(); <a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a> != <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6a59df2d2242b1477e41d1d160980ed371">LE</a>; ++<a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a>)
+<a name="l00782"></a>00782     buildLoopChains(F, **<a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a>);
+<a name="l00783"></a>00783 
+<a name="l00784"></a>00784   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineBasicBlock *, 16></a> BlockWorkList;
+<a name="l00785"></a>00785   BlockFilterSet LoopBlockSet(L.<a class="code" href="classllvm_1_1LoopBase.html#a3df1c508a7b1c89247367cab269076e2">block_begin</a>(), L.<a class="code" href="classllvm_1_1LoopBase.html#a91e3f5f9bf6ecbd058624a479e150603">block_end</a>());
+<a name="l00786"></a>00786 
+<a name="l00787"></a>00787   <span class="comment">// First check to see if there is an obviously preferable top block for the</span>
+<a name="l00788"></a>00788   <span class="comment">// loop. This will default to the header, but may end up as one of the</span>
+<a name="l00789"></a>00789   <span class="comment">// predecessors to the header if there is one which will result in strictly</span>
+<a name="l00790"></a>00790   <span class="comment">// fewer branches in the loop body.</span>
+<a name="l00791"></a>00791   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *LoopTop = findBestLoopTop(L, LoopBlockSet);
+<a name="l00792"></a>00792 
+<a name="l00793"></a>00793   <span class="comment">// If we selected just the header for the loop top, look for a potentially</span>
+<a name="l00794"></a>00794   <span class="comment">// profitable exit block in the event that rotating the loop can eliminate</span>
+<a name="l00795"></a>00795   <span class="comment">// branches by placing an exit edge at the bottom.</span>
+<a name="l00796"></a>00796   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *ExitingBB = 0;
+<a name="l00797"></a>00797   <span class="keywordflow">if</span> (LoopTop == L.<a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>())
+<a name="l00798"></a>00798     ExitingBB = findBestLoopExit(F, L, LoopBlockSet);
+<a name="l00799"></a>00799 
+<a name="l00800"></a>00800   BlockChain &LoopChain = *BlockToChain[LoopTop];
+<a name="l00801"></a>00801 
+<a name="l00802"></a>00802   <span class="comment">// FIXME: This is a really lame way of walking the chains in the loop: we</span>
+<a name="l00803"></a>00803   <span class="comment">// walk the blocks, and use a set to prevent visiting a particular chain</span>
+<a name="l00804"></a>00804   <span class="comment">// twice.</span>
+<a name="l00805"></a>00805   <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<BlockChain *, 4></a> UpdatedPreds;
+<a name="l00806"></a>00806   assert(LoopChain.LoopPredecessors == 0);
+<a name="l00807"></a>00807   UpdatedPreds.<a class="code" href="classllvm_1_1SmallPtrSet.html#a9b6dd0fc7a648a939e571246045b673e">insert</a>(&LoopChain);
+<a name="l00808"></a>00808   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1LoopBase.html#ab39f9623eaa8cd22213aa716c6fb9994">MachineLoop::block_iterator</a> BI = L.<a class="code" href="classllvm_1_1LoopBase.html#a3df1c508a7b1c89247367cab269076e2">block_begin</a>(),
+<a name="l00809"></a>00809                                    BE = L.<a class="code" href="classllvm_1_1LoopBase.html#a91e3f5f9bf6ecbd058624a479e150603">block_end</a>();
+<a name="l00810"></a>00810        BI != BE; ++BI) {
+<a name="l00811"></a>00811     BlockChain &Chain = *BlockToChain[*BI];
+<a name="l00812"></a>00812     <span class="keywordflow">if</span> (!UpdatedPreds.<a class="code" href="classllvm_1_1SmallPtrSet.html#a9b6dd0fc7a648a939e571246045b673e">insert</a>(&Chain))
+<a name="l00813"></a>00813       <span class="keywordflow">continue</span>;
+<a name="l00814"></a>00814 
+<a name="l00815"></a>00815     assert(Chain.LoopPredecessors == 0);
+<a name="l00816"></a>00816     <span class="keywordflow">for</span> (BlockChain::iterator BCI = Chain.begin(), BCE = Chain.end();
+<a name="l00817"></a>00817          BCI != BCE; ++BCI) {
+<a name="l00818"></a>00818       assert(BlockToChain[*BCI] == &Chain);
+<a name="l00819"></a>00819       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#a7e7a1a247b7725a24fe19a91f90782cc">MachineBasicBlock::pred_iterator</a> PI = (*BCI)->pred_begin(),
+<a name="l00820"></a>00820                                             PE = (*BCI)->pred_end();
+<a name="l00821"></a>00821            PI != PE; ++PI) {
+<a name="l00822"></a>00822         <span class="keywordflow">if</span> (BlockToChain[*PI] == &Chain || !LoopBlockSet.count(*PI))
+<a name="l00823"></a>00823           <span class="keywordflow">continue</span>;
+<a name="l00824"></a>00824         ++Chain.LoopPredecessors;
+<a name="l00825"></a>00825       }
+<a name="l00826"></a>00826     }
+<a name="l00827"></a>00827 
+<a name="l00828"></a>00828     <span class="keywordflow">if</span> (Chain.LoopPredecessors == 0)
+<a name="l00829"></a>00829       BlockWorkList.<a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(*Chain.begin());
+<a name="l00830"></a>00830   }
+<a name="l00831"></a>00831 
+<a name="l00832"></a>00832   buildChain(LoopTop, LoopChain, BlockWorkList, &LoopBlockSet);
+<a name="l00833"></a>00833   rotateLoop(LoopChain, ExitingBB, LoopBlockSet);
+<a name="l00834"></a>00834 
+<a name="l00835"></a>00835   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>({
+<a name="l00836"></a>00836     <span class="comment">// Crash at the end so we get all of the debugging output first.</span>
+<a name="l00837"></a>00837     <span class="keywordtype">bool</span> BadLoop = <span class="keyword">false</span>;
+<a name="l00838"></a>00838     <span class="keywordflow">if</span> (LoopChain.LoopPredecessors) {
+<a name="l00839"></a>00839       BadLoop = <span class="keyword">true</span>;
+<a name="l00840"></a>00840       <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Loop chain contains a block without its preds placed!\n"</span>
+<a name="l00841"></a>00841              << <span class="stringliteral">"  Loop header:  "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*L.<a class="code" href="classllvm_1_1LoopBase.html#a3df1c508a7b1c89247367cab269076e2">block_begin</a>()) << <span class="stringliteral">"\n"</span>
+<a name="l00842"></a>00842              << <span class="stringliteral">"  Chain header: "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*LoopChain.begin()) << <span class="stringliteral">"\n"</span>;
+<a name="l00843"></a>00843     }
+<a name="l00844"></a>00844     <span class="keywordflow">for</span> (BlockChain::iterator BCI = LoopChain.begin(), BCE = LoopChain.end();
+<a name="l00845"></a>00845          BCI != BCE; ++BCI) {
+<a name="l00846"></a>00846       <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"          ... "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*BCI) << <span class="stringliteral">"\n"</span>;
+<a name="l00847"></a>00847       <span class="keywordflow">if</span> (!LoopBlockSet.erase(*BCI)) {
+<a name="l00848"></a>00848         <span class="comment">// We don't mark the loop as bad here because there are real situations</span>
+<a name="l00849"></a>00849         <span class="comment">// where this can occur. For example, with an unanalyzable fallthrough</span>
+<a name="l00850"></a>00850         <span class="comment">// from a loop block to a non-loop block or vice versa.</span>
+<a name="l00851"></a>00851         <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Loop chain contains a block not contained by the loop!\n"</span>
+<a name="l00852"></a>00852                << <span class="stringliteral">"  Loop header:  "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*L.<a class="code" href="classllvm_1_1LoopBase.html#a3df1c508a7b1c89247367cab269076e2">block_begin</a>()) << <span class="stringliteral">"\n"</span>
+<a name="l00853"></a>00853                << <span class="stringliteral">"  Chain header: "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*LoopChain.begin()) << <span class="stringliteral">"\n"</span>
+<a name="l00854"></a>00854                << <span class="stringliteral">"  Bad block:    "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*BCI) << <span class="stringliteral">"\n"</span>;
+<a name="l00855"></a>00855       }
+<a name="l00856"></a>00856     }
+<a name="l00857"></a>00857 
+<a name="l00858"></a>00858     <span class="keywordflow">if</span> (!LoopBlockSet.empty()) {
+<a name="l00859"></a>00859       BadLoop = <span class="keyword">true</span>;
+<a name="l00860"></a>00860       <span class="keywordflow">for</span> (BlockFilterSet::iterator LBI = LoopBlockSet.begin(),
+<a name="l00861"></a>00861                                     LBE = LoopBlockSet.end();
+<a name="l00862"></a>00862            LBI != LBE; ++LBI)
+<a name="l00863"></a>00863         <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Loop contains blocks never placed into a chain!\n"</span>
+<a name="l00864"></a>00864                << <span class="stringliteral">"  Loop header:  "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*L.<a class="code" href="classllvm_1_1LoopBase.html#a3df1c508a7b1c89247367cab269076e2">block_begin</a>()) << <span class="stringliteral">"\n"</span>
+<a name="l00865"></a>00865                << <span class="stringliteral">"  Chain header: "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*LoopChain.begin()) << <span class="stringliteral">"\n"</span>
+<a name="l00866"></a>00866                << <span class="stringliteral">"  Bad block:    "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*LBI) << <span class="stringliteral">"\n"</span>;
+<a name="l00867"></a>00867     }
+<a name="l00868"></a>00868     assert(!BadLoop && <span class="stringliteral">"Detected problems with the placement of this loop."</span>);
+<a name="l00869"></a>00869   });
+<a name="l00870"></a>00870 }
+<a name="l00871"></a>00871 
+<a name="l00872"></a>00872 <span class="keywordtype">void</span> MachineBlockPlacement::buildCFGChains(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &F) {
+<a name="l00873"></a>00873   <span class="comment">// Ensure that every BB in the function has an associated chain to simplify</span>
+<a name="l00874"></a>00874   <span class="comment">// the assumptions of the remaining algorithm.</span>
+<a name="l00875"></a>00875   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineOperand, 4></a> Cond; <span class="comment">// For AnalyzeBranch.</span>
+<a name="l00876"></a>00876   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a> FI = F.<a class="code" href="classllvm_1_1MachineFunction.html#ab0789854909cf47f640a85fa2bac29c7">begin</a>(), FE = F.<a class="code" href="classllvm_1_1MachineFunction.html#a9d017af749f76484cb9aec9ff6e4330c">end</a>(); FI != FE; ++FI) {
+<a name="l00877"></a>00877     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB = FI;
+<a name="l00878"></a>00878     BlockChain *Chain
+<a name="l00879"></a>00879       = <span class="keyword">new</span> (ChainAllocator.Allocate()) BlockChain(BlockToChain, BB);
+<a name="l00880"></a>00880     <span class="comment">// Also, merge any blocks which we cannot reason about and must preserve</span>
+<a name="l00881"></a>00881     <span class="comment">// the exact fallthrough behavior for.</span>
+<a name="l00882"></a>00882     <span class="keywordflow">for</span> (;;) {
+<a name="l00883"></a>00883       Cond.<a class="code" href="classllvm_1_1SmallVectorImpl.html#aac0ea55010b7b1a301e65a0baea057aa">clear</a>();
+<a name="l00884"></a>00884       <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *TBB = 0, *FBB = 0; <span class="comment">// For AnalyzeBranch.</span>
+<a name="l00885"></a>00885       <span class="keywordflow">if</span> (!TII->AnalyzeBranch(*BB, TBB, FBB, Cond) || !FI->canFallThrough())
+<a name="l00886"></a>00886         <span class="keywordflow">break</span>;
+<a name="l00887"></a>00887 
+<a name="l00888"></a>00888       <a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a> NextFI(<a class="code" href="namespacellvm.html#aa1704159f75e6eacd595962ea6d93ffe">llvm::next</a>(FI));
+<a name="l00889"></a>00889       <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *NextBB = NextFI;
+<a name="l00890"></a>00890       <span class="comment">// Ensure that the layout successor is a viable block, as we know that</span>
+<a name="l00891"></a>00891       <span class="comment">// fallthrough is a possibility.</span>
+<a name="l00892"></a>00892       assert(NextFI != FE && <span class="stringliteral">"Can't fallthrough past the last block."</span>);
+<a name="l00893"></a>00893       <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Pre-merging due to unanalyzable fallthrough: "</span>
+<a name="l00894"></a>00894                    << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(BB) << <span class="stringliteral">" -> "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(NextBB)
+<a name="l00895"></a>00895                    << <span class="stringliteral">"\n"</span>);
+<a name="l00896"></a>00896       Chain->merge(NextBB, 0);
+<a name="l00897"></a>00897       FI = NextFI;
+<a name="l00898"></a>00898       BB = NextBB;
+<a name="l00899"></a>00899     }
+<a name="l00900"></a>00900   }
+<a name="l00901"></a>00901 
+<a name="l00902"></a>00902   <span class="comment">// Build any loop-based chains.</span>
+<a name="l00903"></a>00903   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineLoopInfo.html#a73d7a343f01b71b7adaa75d867a5f67e">MachineLoopInfo::iterator</a> <a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a> = MLI->begin(), <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6a59df2d2242b1477e41d1d160980ed371">LE</a> = MLI->end(); <a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a> != <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6a59df2d2242b1477e41d1d160980ed371">LE</a>;
+<a name="l00904"></a>00904        ++<a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a>)
+<a name="l00905"></a>00905     buildLoopChains(F, **<a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a>);
+<a name="l00906"></a>00906 
+<a name="l00907"></a>00907   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineBasicBlock *, 16></a> BlockWorkList;
+<a name="l00908"></a>00908 
+<a name="l00909"></a>00909   <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<BlockChain *, 4></a> UpdatedPreds;
+<a name="l00910"></a>00910   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a> FI = F.<a class="code" href="classllvm_1_1MachineFunction.html#ab0789854909cf47f640a85fa2bac29c7">begin</a>(), FE = F.<a class="code" href="classllvm_1_1MachineFunction.html#a9d017af749f76484cb9aec9ff6e4330c">end</a>(); FI != FE; ++FI) {
+<a name="l00911"></a>00911     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB = &*FI;
+<a name="l00912"></a>00912     BlockChain &Chain = *BlockToChain[BB];
+<a name="l00913"></a>00913     <span class="keywordflow">if</span> (!UpdatedPreds.<a class="code" href="classllvm_1_1SmallPtrSet.html#a9b6dd0fc7a648a939e571246045b673e">insert</a>(&Chain))
+<a name="l00914"></a>00914       <span class="keywordflow">continue</span>;
+<a name="l00915"></a>00915 
+<a name="l00916"></a>00916     assert(Chain.LoopPredecessors == 0);
+<a name="l00917"></a>00917     <span class="keywordflow">for</span> (BlockChain::iterator BCI = Chain.begin(), BCE = Chain.end();
+<a name="l00918"></a>00918          BCI != BCE; ++BCI) {
+<a name="l00919"></a>00919       assert(BlockToChain[*BCI] == &Chain);
+<a name="l00920"></a>00920       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#a7e7a1a247b7725a24fe19a91f90782cc">MachineBasicBlock::pred_iterator</a> PI = (*BCI)->pred_begin(),
+<a name="l00921"></a>00921                                             PE = (*BCI)->pred_end();
+<a name="l00922"></a>00922            PI != PE; ++PI) {
+<a name="l00923"></a>00923         <span class="keywordflow">if</span> (BlockToChain[*PI] == &Chain)
+<a name="l00924"></a>00924           <span class="keywordflow">continue</span>;
+<a name="l00925"></a>00925         ++Chain.LoopPredecessors;
+<a name="l00926"></a>00926       }
+<a name="l00927"></a>00927     }
+<a name="l00928"></a>00928 
+<a name="l00929"></a>00929     <span class="keywordflow">if</span> (Chain.LoopPredecessors == 0)
+<a name="l00930"></a>00930       BlockWorkList.<a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(*Chain.begin());
+<a name="l00931"></a>00931   }
+<a name="l00932"></a>00932 
+<a name="l00933"></a>00933   BlockChain &FunctionChain = *BlockToChain[&F.<a class="code" href="classllvm_1_1MachineFunction.html#af562445435f18637f07676da054ba02c">front</a>()];
+<a name="l00934"></a>00934   buildChain(&F.<a class="code" href="classllvm_1_1MachineFunction.html#af562445435f18637f07676da054ba02c">front</a>(), FunctionChain, BlockWorkList);
+<a name="l00935"></a>00935 
+<a name="l00936"></a>00936   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<MachineBasicBlock *, 16></a> FunctionBlockSetType;
+<a name="l00937"></a>00937   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>({
+<a name="l00938"></a>00938     <span class="comment">// Crash at the end so we get all of the debugging output first.</span>
+<a name="l00939"></a>00939     <span class="keywordtype">bool</span> BadFunc = <span class="keyword">false</span>;
+<a name="l00940"></a>00940     FunctionBlockSetType FunctionBlockSet;
+<a name="l00941"></a>00941     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a> FI = F.<a class="code" href="classllvm_1_1MachineFunction.html#ab0789854909cf47f640a85fa2bac29c7">begin</a>(), FE = F.<a class="code" href="classllvm_1_1MachineFunction.html#a9d017af749f76484cb9aec9ff6e4330c">end</a>(); FI != FE; ++FI)
+<a name="l00942"></a>00942       FunctionBlockSet.insert(FI);
+<a name="l00943"></a>00943 
+<a name="l00944"></a>00944     <span class="keywordflow">for</span> (BlockChain::iterator BCI = FunctionChain.begin(),
+<a name="l00945"></a>00945                               BCE = FunctionChain.end();
+<a name="l00946"></a>00946          BCI != BCE; ++BCI)
+<a name="l00947"></a>00947       <span class="keywordflow">if</span> (!FunctionBlockSet.erase(*BCI)) {
+<a name="l00948"></a>00948         BadFunc = <span class="keyword">true</span>;
+<a name="l00949"></a>00949         <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Function chain contains a block not in the function!\n"</span>
+<a name="l00950"></a>00950                << <span class="stringliteral">"  Bad block:    "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*BCI) << <span class="stringliteral">"\n"</span>;
+<a name="l00951"></a>00951       }
+<a name="l00952"></a>00952 
+<a name="l00953"></a>00953     <span class="keywordflow">if</span> (!FunctionBlockSet.empty()) {
+<a name="l00954"></a>00954       BadFunc = <span class="keyword">true</span>;
+<a name="l00955"></a>00955       <span class="keywordflow">for</span> (FunctionBlockSetType::iterator FBI = FunctionBlockSet.begin(),
+<a name="l00956"></a>00956                                           FBE = FunctionBlockSet.end();
+<a name="l00957"></a>00957            FBI != FBE; ++FBI)
+<a name="l00958"></a>00958         <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Function contains blocks never placed into a chain!\n"</span>
+<a name="l00959"></a>00959                << <span class="stringliteral">"  Bad block:    "</span> << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*FBI) << <span class="stringliteral">"\n"</span>;
+<a name="l00960"></a>00960     }
+<a name="l00961"></a>00961     assert(!BadFunc && <span class="stringliteral">"Detected problems with the block placement."</span>);
+<a name="l00962"></a>00962   });
+<a name="l00963"></a>00963 
+<a name="l00964"></a>00964   <span class="comment">// Splice the blocks into place.</span>
+<a name="l00965"></a>00965   <a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a> InsertPos = F.<a class="code" href="classllvm_1_1MachineFunction.html#ab0789854909cf47f640a85fa2bac29c7">begin</a>();
+<a name="l00966"></a>00966   <span class="keywordflow">for</span> (BlockChain::iterator BI = FunctionChain.begin(),
+<a name="l00967"></a>00967                             BE = FunctionChain.end();
+<a name="l00968"></a>00968        BI != BE; ++BI) {
+<a name="l00969"></a>00969     <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << (BI == FunctionChain.begin() ? <span class="stringliteral">"Placing chain "</span>
+<a name="l00970"></a>00970                                                   : <span class="stringliteral">"          ... "</span>)
+<a name="l00971"></a>00971           << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(*BI) << <span class="stringliteral">"\n"</span>);
+<a name="l00972"></a>00972     <span class="keywordflow">if</span> (InsertPos != <a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a>(*BI))
+<a name="l00973"></a>00973       F.<a class="code" href="classllvm_1_1MachineFunction.html#adf74e9faccaee21b521a0973568d4738">splice</a>(InsertPos, *BI);
+<a name="l00974"></a>00974     <span class="keywordflow">else</span>
+<a name="l00975"></a>00975       ++InsertPos;
+<a name="l00976"></a>00976 
+<a name="l00977"></a>00977     <span class="comment">// Update the terminator of the previous block.</span>
+<a name="l00978"></a>00978     <span class="keywordflow">if</span> (BI == FunctionChain.begin())
+<a name="l00979"></a>00979       <span class="keywordflow">continue</span>;
+<a name="l00980"></a>00980     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *PrevBB = <a class="code" href="namespacellvm.html#a7923e3e207de8bc1d0d6a5091316ddde">llvm::prior</a>(<a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a>(*BI));
+<a name="l00981"></a>00981 
+<a name="l00982"></a>00982     <span class="comment">// FIXME: It would be awesome of updateTerminator would just return rather</span>
+<a name="l00983"></a>00983     <span class="comment">// than assert when the branch cannot be analyzed in order to remove this</span>
+<a name="l00984"></a>00984     <span class="comment">// boiler plate.</span>
+<a name="l00985"></a>00985     Cond.<a class="code" href="classllvm_1_1SmallVectorImpl.html#aac0ea55010b7b1a301e65a0baea057aa">clear</a>();
+<a name="l00986"></a>00986     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *TBB = 0, *FBB = 0; <span class="comment">// For AnalyzeBranch.</span>
+<a name="l00987"></a>00987     <span class="keywordflow">if</span> (!TII->AnalyzeBranch(*PrevBB, TBB, FBB, Cond)) {
+<a name="l00988"></a>00988       <span class="comment">// If PrevBB has a two-way branch, try to re-order the branches</span>
+<a name="l00989"></a>00989       <span class="comment">// such that we branch to the successor with higher weight first.</span>
+<a name="l00990"></a>00990       <span class="keywordflow">if</span> (TBB && !Cond.<a class="code" href="classllvm_1_1SmallVectorBase.html#afdecfccba9b1fd8c9fd8eb27ae69e9a0">empty</a>() && FBB &&
+<a name="l00991"></a>00991           MBPI->getEdgeWeight(PrevBB, FBB) > MBPI->getEdgeWeight(PrevBB, TBB) &&
+<a name="l00992"></a>00992           !TII->ReverseBranchCondition(Cond)) {
+<a name="l00993"></a>00993         <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Reverse order of the two branches: "</span>
+<a name="l00994"></a>00994                      << <a class="code" href="MachineBlockPlacement_8cpp.html#a420a575a5cc23a356c5cbdbe9f98ca78" title="Helper to print the name of a MBB.">getBlockName</a>(PrevBB) << <span class="stringliteral">"\n"</span>);
+<a name="l00995"></a>00995         <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"    Edge weight: "</span> << MBPI->getEdgeWeight(PrevBB, FBB)
+<a name="l00996"></a>00996                      << <span class="stringliteral">" vs "</span> << MBPI->getEdgeWeight(PrevBB, TBB) << <span class="stringliteral">"\n"</span>);
+<a name="l00997"></a>00997         <a class="code" href="classllvm_1_1DebugLoc.html">DebugLoc</a> dl;  <span class="comment">// FIXME: this is nowhere</span>
+<a name="l00998"></a>00998         TII->RemoveBranch(*PrevBB);
+<a name="l00999"></a>00999         TII->InsertBranch(*PrevBB, FBB, TBB, Cond, dl);
+<a name="l01000"></a>01000       }
+<a name="l01001"></a>01001       PrevBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#adae3eecba34e135c8ad4e05e29ea8be1">updateTerminator</a>();
+<a name="l01002"></a>01002     }
+<a name="l01003"></a>01003   }
+<a name="l01004"></a>01004 
+<a name="l01005"></a>01005   <span class="comment">// Fixup the last block.</span>
+<a name="l01006"></a>01006   Cond.<a class="code" href="classllvm_1_1SmallVectorImpl.html#aac0ea55010b7b1a301e65a0baea057aa">clear</a>();
+<a name="l01007"></a>01007   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *TBB = 0, *FBB = 0; <span class="comment">// For AnalyzeBranch.</span>
+<a name="l01008"></a>01008   <span class="keywordflow">if</span> (!TII->AnalyzeBranch(F.<a class="code" href="classllvm_1_1MachineFunction.html#a0112d77d429a9eff5d852287b14871dd">back</a>(), TBB, FBB, Cond))
+<a name="l01009"></a>01009     F.<a class="code" href="classllvm_1_1MachineFunction.html#a0112d77d429a9eff5d852287b14871dd">back</a>().<a class="code" href="classllvm_1_1MachineBasicBlock.html#adae3eecba34e135c8ad4e05e29ea8be1">updateTerminator</a>();
+<a name="l01010"></a>01010 
+<a name="l01011"></a>01011   <span class="comment">// Walk through the backedges of the function now that we have fully laid out</span>
+<a name="l01012"></a>01012   <span class="comment">// the basic blocks and align the destination of each backedge. We don't rely</span>
+<a name="l01013"></a>01013   <span class="comment">// exclusively on the loop info here so that we can align backedges in</span>
+<a name="l01014"></a>01014   <span class="comment">// unnatural CFGs and backedges that were introduced purely because of the</span>
+<a name="l01015"></a>01015   <span class="comment">// loop rotations done during this layout pass.</span>
+<a name="l01016"></a>01016   <span class="keywordflow">if</span> (F.<a class="code" href="classllvm_1_1MachineFunction.html#ad784a6594990530bffb2018aeeed56f3">getFunction</a>()-><a class="code" href="classllvm_1_1Function.html#aceca681da32da537bfd9f00dcf371278">getFnAttributes</a>().
+<a name="l01017"></a>01017         hasAttribute(Attributes::OptimizeForSize))
+<a name="l01018"></a>01018     <span class="keywordflow">return</span>;
+<a name="l01019"></a>01019   <span class="keywordtype">unsigned</span> Align = TLI->getPrefLoopAlignment();
+<a name="l01020"></a>01020   <span class="keywordflow">if</span> (!Align)
+<a name="l01021"></a>01021     <span class="keywordflow">return</span>;  <span class="comment">// Don't care about loop alignment.</span>
+<a name="l01022"></a>01022   <span class="keywordflow">if</span> (FunctionChain.begin() == FunctionChain.end())
+<a name="l01023"></a>01023     <span class="keywordflow">return</span>;  <span class="comment">// Empty chain.</span>
+<a name="l01024"></a>01024 
+<a name="l01025"></a>01025   <span class="keyword">const</span> <a class="code" href="classllvm_1_1BranchProbability.html">BranchProbability</a> ColdProb(1, 5); <span class="comment">// 20%</span>
+<a name="l01026"></a>01026   <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> EntryFreq = MBFI->getBlockFreq(F.<a class="code" href="classllvm_1_1MachineFunction.html#ab0789854909cf47f640a85fa2bac29c7">begin</a>());
+<a name="l01027"></a>01027   <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> WeightedEntryFreq = EntryFreq * ColdProb;
+<a name="l01028"></a>01028   <span class="keywordflow">for</span> (BlockChain::iterator BI = <a class="code" href="namespacellvm.html#aa1704159f75e6eacd595962ea6d93ffe">llvm::next</a>(FunctionChain.begin()),
+<a name="l01029"></a>01029                             BE = FunctionChain.end();
+<a name="l01030"></a>01030        BI != BE; ++BI) {
+<a name="l01031"></a>01031     <span class="comment">// Don't align non-looping basic blocks. These are unlikely to execute</span>
+<a name="l01032"></a>01032     <span class="comment">// enough times to matter in practice. Note that we'll still handle</span>
+<a name="l01033"></a>01033     <span class="comment">// unnatural CFGs inside of a natural outer loop (the common case) and</span>
+<a name="l01034"></a>01034     <span class="comment">// rotated loops.</span>
+<a name="l01035"></a>01035     <a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> *L = MLI->getLoopFor(*BI);
+<a name="l01036"></a>01036     <span class="keywordflow">if</span> (!L)
+<a name="l01037"></a>01037       <span class="keywordflow">continue</span>;
+<a name="l01038"></a>01038 
+<a name="l01039"></a>01039     <span class="comment">// If the block is cold relative to the function entry don't waste space</span>
+<a name="l01040"></a>01040     <span class="comment">// aligning it.</span>
+<a name="l01041"></a>01041     <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> Freq = MBFI->getBlockFreq(*BI);
+<a name="l01042"></a>01042     <span class="keywordflow">if</span> (Freq < WeightedEntryFreq)
+<a name="l01043"></a>01043       <span class="keywordflow">continue</span>;
+<a name="l01044"></a>01044 
+<a name="l01045"></a>01045     <span class="comment">// If the block is cold relative to its loop header, don't align it</span>
+<a name="l01046"></a>01046     <span class="comment">// regardless of what edges into the block exist.</span>
+<a name="l01047"></a>01047     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *LoopHeader = L-><a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>();
+<a name="l01048"></a>01048     <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> LoopHeaderFreq = MBFI->getBlockFreq(LoopHeader);
+<a name="l01049"></a>01049     <span class="keywordflow">if</span> (Freq < (LoopHeaderFreq * ColdProb))
+<a name="l01050"></a>01050       <span class="keywordflow">continue</span>;
+<a name="l01051"></a>01051 
+<a name="l01052"></a>01052     <span class="comment">// Check for the existence of a non-layout predecessor which would benefit</span>
+<a name="l01053"></a>01053     <span class="comment">// from aligning this block.</span>
+<a name="l01054"></a>01054     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *LayoutPred = *<a class="code" href="namespacellvm.html#a7923e3e207de8bc1d0d6a5091316ddde">llvm::prior</a>(BI);
+<a name="l01055"></a>01055 
+<a name="l01056"></a>01056     <span class="comment">// Force alignment if all the predecessors are jumps. We already checked</span>
+<a name="l01057"></a>01057     <span class="comment">// that the block isn't cold above.</span>
+<a name="l01058"></a>01058     <span class="keywordflow">if</span> (!LayoutPred-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a57f25804288bc580d7b2e4016a38aec9">isSuccessor</a>(*BI)) {
+<a name="l01059"></a>01059       (*BI)->setAlignment(Align);
+<a name="l01060"></a>01060       <span class="keywordflow">continue</span>;
+<a name="l01061"></a>01061     }
+<a name="l01062"></a>01062 
+<a name="l01063"></a>01063     <span class="comment">// Align this block if the layout predecessor's edge into this block is</span>
+<a name="l01064"></a>01064     <span class="comment">// cold relative to the block. When this is true, othe predecessors make up</span>
+<a name="l01065"></a>01065     <span class="comment">// all of the hot entries into the block and thus alignment is likely to be</span>
+<a name="l01066"></a>01066     <span class="comment">// important.</span>
+<a name="l01067"></a>01067     <a class="code" href="classllvm_1_1BranchProbability.html">BranchProbability</a> LayoutProb = MBPI->getEdgeProbability(LayoutPred, *BI);
+<a name="l01068"></a>01068     <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> LayoutEdgeFreq = MBFI->getBlockFreq(LayoutPred) * LayoutProb;
+<a name="l01069"></a>01069     <span class="keywordflow">if</span> (LayoutEdgeFreq <= (Freq * ColdProb))
+<a name="l01070"></a>01070       (*BI)->setAlignment(Align);
+<a name="l01071"></a>01071   }
+<a name="l01072"></a>01072 }
+<a name="l01073"></a>01073 
+<a name="l01074"></a>01074 <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html#abb98ed32e4e5acae62ef3edd7bf04fb5">MachineBlockPlacement::runOnMachineFunction</a>(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &F) {
+<a name="l01075"></a>01075   <span class="comment">// Check for single-block functions and skip them.</span>
+<a name="l01076"></a>01076   <span class="keywordflow">if</span> (<a class="code" href="namespacellvm.html#aa1704159f75e6eacd595962ea6d93ffe">llvm::next</a>(F.<a class="code" href="classllvm_1_1MachineFunction.html#ab0789854909cf47f640a85fa2bac29c7">begin</a>()) == F.<a class="code" href="classllvm_1_1MachineFunction.html#a9d017af749f76484cb9aec9ff6e4330c">end</a>())
+<a name="l01077"></a>01077     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01078"></a>01078 
+<a name="l01079"></a>01079   MBPI = &getAnalysis<MachineBranchProbabilityInfo>();
+<a name="l01080"></a>01080   MBFI = &getAnalysis<MachineBlockFrequencyInfo>();
+<a name="l01081"></a>01081   MLI = &getAnalysis<MachineLoopInfo>();
+<a name="l01082"></a>01082   TII = F.<a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>().<a class="code" href="classllvm_1_1TargetMachine.html#ac13d0f6f2c915757013b101ef6e8afbc">getInstrInfo</a>();
+<a name="l01083"></a>01083   TLI = F.<a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>().<a class="code" href="classllvm_1_1TargetMachine.html#ac962b1af600c2e418625a5fecc5e0f95">getTargetLowering</a>();
+<a name="l01084"></a>01084   assert(BlockToChain.empty());
+<a name="l01085"></a>01085 
+<a name="l01086"></a>01086   buildCFGChains(F);
+<a name="l01087"></a>01087 
+<a name="l01088"></a>01088   BlockToChain.clear();
+<a name="l01089"></a>01089   ChainAllocator.DestroyAll();
+<a name="l01090"></a>01090 
+<a name="l01091"></a>01091   <span class="comment">// We always return true as we have no way to track whether the final order</span>
+<a name="l01092"></a>01092   <span class="comment">// differs from the original order.</span>
+<a name="l01093"></a>01093   <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l01094"></a>01094 }
+<a name="l01095"></a>01095 
+<a name="l01096"></a>01096 <span class="keyword">namespace </span>{<span class="comment"></span>
+<a name="l01097"></a>01097 <span class="comment">/// \brief A pass to compute block placement statistics.</span>
+<a name="l01098"></a>01098 <span class="comment">///</span>
+<a name="l01099"></a>01099 <span class="comment">/// A separate pass to compute interesting statistics for evaluating block</span>
+<a name="l01100"></a>01100 <span class="comment">/// placement. This is separate from the actual placement pass so that they can</span>
+<a name="l01101"></a>01101 <span class="comment">/// be computed in the absence of any placement transformations or when using</span>
+<a name="l01102"></a>01102 <span class="comment">/// alternative placement strategies.</span>
+<a name="l01103"></a>01103 <span class="comment"></span><span class="keyword">class </span>MachineBlockPlacementStats : <span class="keyword">public</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a> {<span class="comment"></span>
+<a name="l01104"></a>01104 <span class="comment">  /// \brief A handle to the branch probability pass.</span>
+<a name="l01105"></a>01105 <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html">MachineBranchProbabilityInfo</a> *MBPI;
+<a name="l01106"></a>01106 <span class="comment"></span>
+<a name="l01107"></a>01107 <span class="comment">  /// \brief A handle to the function-wide block frequency pass.</span>
+<a name="l01108"></a>01108 <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineBlockFrequencyInfo.html">MachineBlockFrequencyInfo</a> *MBFI;
+<a name="l01109"></a>01109 
+<a name="l01110"></a>01110 <span class="keyword">public</span>:
+<a name="l01111"></a>01111   <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>; <span class="comment">// Pass identification, replacement for typeid</span>
+<a name="l01112"></a>01112   MachineBlockPlacementStats() : <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a>(<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>) {
+<a name="l01113"></a>01113     <a class="code" href="namespacellvm.html#a44d0c54f06e770c47e8d36af9f09b4af">initializeMachineBlockPlacementStatsPass</a>(*PassRegistry::getPassRegistry());
+<a name="l01114"></a>01114   }
+<a name="l01115"></a>01115 
+<a name="l01116"></a>01116   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html#abb98ed32e4e5acae62ef3edd7bf04fb5">runOnMachineFunction</a>(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &F);
+<a name="l01117"></a>01117 
+<a name="l01118"></a>01118   <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html#aa1eece37d175f86a6f4808c0c167f13b">getAnalysisUsage</a>(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU)<span class="keyword"> const </span>{
+<a name="l01119"></a>01119     AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html">MachineBranchProbabilityInfo</a>>();
+<a name="l01120"></a>01120     AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1MachineBlockFrequencyInfo.html">MachineBlockFrequencyInfo</a>>();
+<a name="l01121"></a>01121     AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#af22b06a6a4f9df80454071685a0d6a02">setPreservesAll</a>();
+<a name="l01122"></a>01122     MachineFunctionPass::getAnalysisUsage(AU);
+<a name="l01123"></a>01123   }
+<a name="l01124"></a>01124 };
+<a name="l01125"></a>01125 }
+<a name="l01126"></a>01126 
+<a name="l01127"></a>01127 <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">MachineBlockPlacementStats::ID</a> = 0;
+<a name="l01128"></a><a class="code" href="namespacellvm.html#aed6261eb88354cb0f52273e9fdcce729">01128</a> <span class="keywordtype">char</span> &<a class="code" href="namespacellvm.html#aed6261eb88354cb0f52273e9fdcce729">llvm::MachineBlockPlacementStatsID</a> = <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">MachineBlockPlacementStats::ID</a>;
+<a name="l01129"></a>01129 <a class="code" href="PassSupport_8h.html#aaa970fc931c1c63037a8182e028d04b1">INITIALIZE_PASS_BEGIN</a>(MachineBlockPlacementStats, <span class="stringliteral">"block-placement-stats"</span>,
+<a name="l01130"></a>01130                       <span class="stringliteral">"Basic Block Placement Stats"</span>, <span class="keyword">false</span>, <span class="keyword">false</span>)
+<a name="l01131"></a>01131 <a class="code" href="PassSupport_8h.html#a14724f1ccf528e73bb29bc9230737967">INITIALIZE_PASS_DEPENDENCY</a>(<a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html">MachineBranchProbabilityInfo</a>)
+<a name="l01132"></a>01132 <a class="code" href="PassSupport_8h.html#a14724f1ccf528e73bb29bc9230737967">INITIALIZE_PASS_DEPENDENCY</a>(<a class="code" href="classllvm_1_1MachineBlockFrequencyInfo.html">MachineBlockFrequencyInfo</a>)
+<a name="l01133"></a><a class="code" href="MachineBlockPlacement_8cpp.html#a086f939e29b718dc5a01e4bcfe6af2a1">01133</a> <a class="code" href="PassSupport_8h.html#a74ce8276b89067e806f67c45a6d92575">INITIALIZE_PASS_END</a>(MachineBlockPlacementStats, "block-<a class="code" href="SpillPlacement_8cpp.html#a6e1dbdf6b8d5e2d870e4a8d792f72299">placement</a>-<a class="code" href="MachineBlockPlacement_8cpp.html#a971b2fc3751cade0a6b2f76c92774317">stats</a>",
+<a name="l01134"></a>01134                     "Basic Block Placement <a class="code" href="MachineBlockPlacement_8cpp.html#a086f939e29b718dc5a01e4bcfe6af2a1">Stats</a>", false, false)
+<a name="l01135"></a>01135 
+<a name="l01136"></a>01136 <span class="keywordtype">bool</span> MachineBlockPlacementStats::runOnMachineFunction(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &F) {
+<a name="l01137"></a>01137   <span class="comment">// Check for single-block functions and skip them.</span>
+<a name="l01138"></a>01138   <span class="keywordflow">if</span> (<a class="code" href="namespacellvm.html#aa1704159f75e6eacd595962ea6d93ffe">llvm::next</a>(F.begin()) == F.end())
+<a name="l01139"></a>01139     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01140"></a>01140 
+<a name="l01141"></a>01141   MBPI = &getAnalysis<MachineBranchProbabilityInfo>();
+<a name="l01142"></a>01142   MBFI = &getAnalysis<MachineBlockFrequencyInfo>();
+<a name="l01143"></a>01143 
+<a name="l01144"></a>01144   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = F.begin(), E = F.end(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l01145"></a>01145     <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> BlockFreq = MBFI->getBlockFreq(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l01146"></a>01146     <a class="code" href="classllvm_1_1Statistic.html">Statistic</a> &NumBranches = (<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>->succ_size() > 1) ? NumCondBranches
+<a name="l01147"></a>01147                                                   : NumUncondBranches;
+<a name="l01148"></a>01148     <a class="code" href="classllvm_1_1Statistic.html">Statistic</a> &BranchTakenFreq = (<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>->succ_size() > 1) ? CondBranchTakenFreq
+<a name="l01149"></a>01149                                                       : UncondBranchTakenFreq;
+<a name="l01150"></a>01150     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#aefba5f2af370add1bc8aaceedf7878ef">MachineBasicBlock::succ_iterator</a> SI = <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>->succ_begin(),
+<a name="l01151"></a>01151                                           SE = <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>->succ_end();
+<a name="l01152"></a>01152          SI != SE; ++SI) {
+<a name="l01153"></a>01153       <span class="comment">// Skip if this successor is a fallthrough.</span>
+<a name="l01154"></a>01154       <span class="keywordflow">if</span> (<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>->isLayoutSuccessor(*SI))
+<a name="l01155"></a>01155         <span class="keywordflow">continue</span>;
+<a name="l01156"></a>01156 
+<a name="l01157"></a>01157       <a class="code" href="classllvm_1_1BlockFrequency.html">BlockFrequency</a> EdgeFreq = BlockFreq * MBPI->getEdgeProbability(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>, *SI);
+<a name="l01158"></a>01158       ++NumBranches;
+<a name="l01159"></a>01159       BranchTakenFreq += EdgeFreq.<a class="code" href="classllvm_1_1BlockFrequency.html#acd0d5be21046a46d1ffa3646dc8790fc">getFrequency</a>();
+<a name="l01160"></a>01160     }
+<a name="l01161"></a>01161   }
+<a name="l01162"></a>01162 
+<a name="l01163"></a>01163   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01164"></a>01164 }
+<a name="l01165"></a>01165 
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:35:31 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineBranchProbabilityInfo_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineBranchProbabilityInfo_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineBranchProbabilityInfo_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineBranchProbabilityInfo_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,181 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineBranchProbabilityInfo.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_f2244d21cf8bec63d11bfc1ad661d96f.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MachineBranchProbabilityInfo.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="MachineBranchProbabilityInfo_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===- MachineBranchProbabilityInfo.cpp - Machine Branch Probability Info -===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This analysis uses probability info stored in Machine Basic Blocks.</span>
+<a name="l00011"></a>00011 <span class="comment">//</span>
+<a name="l00012"></a>00012 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="preprocessor">#include "<a class="code" href="Instructions_8h.html">llvm/Instructions.h</a>"</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include "<a class="code" href="MachineBranchProbabilityInfo_8h.html">llvm/CodeGen/MachineBranchProbabilityInfo.h</a>"</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="MachineBasicBlock_8h.html">llvm/CodeGen/MachineBasicBlock.h</a>"</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="Debug_8h.html">llvm/Support/Debug.h</a>"</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="raw__ostream_8h.html">llvm/Support/raw_ostream.h</a>"</span>
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 <span class="keyword">using namespace </span>llvm;
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 <a class="code" href="PassSupport_8h.html#aaa970fc931c1c63037a8182e028d04b1">INITIALIZE_PASS_BEGIN</a>(<a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html">MachineBranchProbabilityInfo</a>, <span class="stringliteral">"machine-branch-prob"</span>,
+<a name="l00023"></a>00023                       <span class="stringliteral">"Machine Branch Probability Analysis"</span>, <span class="keyword">false</span>, <span class="keyword">true</span>)
+<a name="l00024"></a><a class="code" href="MachineBranchProbabilityInfo_8cpp.html#a8eb0bacc2fee9d6f02b41cad17294b76">00024</a> <a class="code" href="PassSupport_8h.html#a74ce8276b89067e806f67c45a6d92575">INITIALIZE_PASS_END</a>(<a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html">MachineBranchProbabilityInfo</a>, "machine-branch-<a class="code" href="BranchProbabilityInfo_8cpp.html#a2bd4799263bb66b1eaf06927f08e7b64">prob</a>",
+<a name="l00025"></a>00025                     "Machine <a class="code" href="namespacellvm_1_1MCID.html#accb16fffd544529ed4d816a45e40f425a359237c780f7c8e40645575826da8a3c">Branch</a> Probability <a class="code" href="BlockFrequencyInfo_8cpp.html#a82e1257a9bb50f34810c5af1c3d3dea4">Analysis</a>", <a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>, <a class="code" href="BasicAliasAnalysis_8cpp.html#a80603f23207dd836075c078e6264204a">true</a>)
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 <span class="keywordtype">char</span> MachineBranchProbabilityInfo::<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a> = 0;
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 <span class="keywordtype">void</span> MachineBranchProbabilityInfo::anchor() { }
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 uint32_t <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#a9838444e292dc37c1475291342478fdc">MachineBranchProbabilityInfo::</a>
+<a name="l00032"></a><a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#a9838444e292dc37c1475291342478fdc">00032</a> <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#a9838444e292dc37c1475291342478fdc">getSumForBlock</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB, uint32_t &Scale)<span class="keyword"> const </span>{
+<a name="l00033"></a>00033   <span class="comment">// First we compute the sum with 64-bits of precision, ensuring that cannot</span>
+<a name="l00034"></a>00034   <span class="comment">// overflow by bounding the number of weights considered. Hopefully no one</span>
+<a name="l00035"></a>00035   <span class="comment">// actually needs 2^32 successors.</span>
+<a name="l00036"></a>00036   assert(MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a9ac05913a143322136efcad10ed7548c">succ_size</a>() < UINT32_MAX);
+<a name="l00037"></a>00037   uint64_t Sum = 0;
+<a name="l00038"></a>00038   Scale = 1;
+<a name="l00039"></a>00039   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#a6198e2abdd4f41355b1a0931affde1a6">MachineBasicBlock::const_succ_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6321b189ea8fd5058663f8a87d6c23e9">succ_begin</a>(),
+<a name="l00040"></a>00040        E = MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a3ddd708642d60c1661992ff8ba1b215d">succ_end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00041"></a>00041     uint32_t Weight = <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#ae1e06434d35f890f59349f4388c7d953">getEdgeWeight</a>(MBB, <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l00042"></a>00042     Sum += Weight;
+<a name="l00043"></a>00043   }
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045   <span class="comment">// If the computed sum fits in 32-bits, we're done.</span>
+<a name="l00046"></a>00046   <span class="keywordflow">if</span> (Sum <= UINT32_MAX)
+<a name="l00047"></a>00047     <span class="keywordflow">return</span> Sum;
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049   <span class="comment">// Otherwise, compute the scale necessary to cause the weights to fit, and</span>
+<a name="l00050"></a>00050   <span class="comment">// re-sum with that scale applied.</span>
+<a name="l00051"></a>00051   assert((Sum / UINT32_MAX) < UINT32_MAX);
+<a name="l00052"></a>00052   Scale = (Sum / UINT32_MAX) + 1;
+<a name="l00053"></a>00053   Sum = 0;
+<a name="l00054"></a>00054   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#a6198e2abdd4f41355b1a0931affde1a6">MachineBasicBlock::const_succ_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6321b189ea8fd5058663f8a87d6c23e9">succ_begin</a>(),
+<a name="l00055"></a>00055        E = MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a3ddd708642d60c1661992ff8ba1b215d">succ_end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00056"></a>00056     uint32_t Weight = <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#ae1e06434d35f890f59349f4388c7d953">getEdgeWeight</a>(MBB, <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l00057"></a>00057     Sum += Weight / Scale;
+<a name="l00058"></a>00058   }
+<a name="l00059"></a>00059   assert(Sum <= UINT32_MAX);
+<a name="l00060"></a>00060   <span class="keywordflow">return</span> Sum;
+<a name="l00061"></a>00061 }
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063 uint32_t <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#ae1e06434d35f890f59349f4388c7d953">MachineBranchProbabilityInfo::</a>
+<a name="l00064"></a><a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#aa1315c08e58d531e46f739ebdac9b70d">00064</a> <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#ae1e06434d35f890f59349f4388c7d953">getEdgeWeight</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Src,
+<a name="l00065"></a>00065               <a class="code" href="classllvm_1_1MachineBasicBlock.html#a6198e2abdd4f41355b1a0931affde1a6">MachineBasicBlock::const_succ_iterator</a> Dst)<span class="keyword"> const </span>{
+<a name="l00066"></a>00066   uint32_t Weight = Src->getSuccWeight(Dst);
+<a name="l00067"></a>00067   <span class="keywordflow">if</span> (!Weight)
+<a name="l00068"></a>00068     <span class="keywordflow">return</span> DEFAULT_WEIGHT;
+<a name="l00069"></a>00069   <span class="keywordflow">return</span> Weight;
+<a name="l00070"></a>00070 }
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072 uint32_t <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#ae1e06434d35f890f59349f4388c7d953">MachineBranchProbabilityInfo::</a>
+<a name="l00073"></a><a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#ae1e06434d35f890f59349f4388c7d953">00073</a> <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#ae1e06434d35f890f59349f4388c7d953">getEdgeWeight</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Src,
+<a name="l00074"></a>00074               <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Dst)<span class="keyword"> const </span>{
+<a name="l00075"></a>00075   <span class="comment">// This is a linear search. Try to use the const_succ_iterator version when</span>
+<a name="l00076"></a>00076   <span class="comment">// possible.</span>
+<a name="l00077"></a>00077   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#ae1e06434d35f890f59349f4388c7d953">getEdgeWeight</a>(Src, std::find(Src-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6321b189ea8fd5058663f8a87d6c23e9">succ_begin</a>(), Src-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a3ddd708642d60c1661992ff8ba1b215d">succ_end</a>(), Dst));
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079 
+<a name="l00080"></a><a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#a580233dbe9ef523a79ce6ba45052ff2b">00080</a> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#a580233dbe9ef523a79ce6ba45052ff2b">MachineBranchProbabilityInfo::isEdgeHot</a>(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Src,
+<a name="l00081"></a>00081                                              <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Dst)<span class="keyword"> const </span>{
+<a name="l00082"></a>00082   <span class="comment">// Hot probability is at least 4/5 = 80%</span>
+<a name="l00083"></a>00083   <span class="comment">// FIXME: Compare against a static "hot" BranchProbability.</span>
+<a name="l00084"></a>00084   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#a71021014177975263135fe6016076345">getEdgeProbability</a>(Src, Dst) > <a class="code" href="classllvm_1_1BranchProbability.html">BranchProbability</a>(4, 5);
+<a name="l00085"></a>00085 }
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087 <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *
+<a name="l00088"></a><a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#af8e227ab2f90f904fa2c15123562a4c2">00088</a> <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#af8e227ab2f90f904fa2c15123562a4c2">MachineBranchProbabilityInfo::getHotSucc</a>(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB)<span class="keyword"> const </span>{
+<a name="l00089"></a>00089   uint32_t MaxWeight = 0;
+<a name="l00090"></a>00090   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MaxSucc = 0;
+<a name="l00091"></a>00091   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#a6198e2abdd4f41355b1a0931affde1a6">MachineBasicBlock::const_succ_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6321b189ea8fd5058663f8a87d6c23e9">succ_begin</a>(),
+<a name="l00092"></a>00092        E = MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a3ddd708642d60c1661992ff8ba1b215d">succ_end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00093"></a>00093     uint32_t Weight = <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#ae1e06434d35f890f59349f4388c7d953">getEdgeWeight</a>(MBB, <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l00094"></a>00094     <span class="keywordflow">if</span> (Weight > MaxWeight) {
+<a name="l00095"></a>00095       MaxWeight = Weight;
+<a name="l00096"></a>00096       MaxSucc = *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00097"></a>00097     }
+<a name="l00098"></a>00098   }
+<a name="l00099"></a>00099 
+<a name="l00100"></a>00100   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#a71021014177975263135fe6016076345">getEdgeProbability</a>(MBB, MaxSucc) >= <a class="code" href="classllvm_1_1BranchProbability.html">BranchProbability</a>(4, 5))
+<a name="l00101"></a>00101     <span class="keywordflow">return</span> MaxSucc;
+<a name="l00102"></a>00102 
+<a name="l00103"></a>00103   <span class="keywordflow">return</span> 0;
+<a name="l00104"></a>00104 }
+<a name="l00105"></a>00105 
+<a name="l00106"></a>00106 <a class="code" href="classllvm_1_1BranchProbability.html">BranchProbability</a>
+<a name="l00107"></a><a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#a71021014177975263135fe6016076345">00107</a> <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#a71021014177975263135fe6016076345">MachineBranchProbabilityInfo::getEdgeProbability</a>(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Src,
+<a name="l00108"></a>00108                                                  <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Dst)<span class="keyword"> const </span>{
+<a name="l00109"></a>00109   uint32_t Scale = 1;
+<a name="l00110"></a>00110   uint32_t D = <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#a9838444e292dc37c1475291342478fdc">getSumForBlock</a>(Src, Scale);
+<a name="l00111"></a>00111   uint32_t <a class="code" href="regcomp_8c.html#a0240ac851181b84ac374872dc5434ee4">N</a> = <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#ae1e06434d35f890f59349f4388c7d953">getEdgeWeight</a>(Src, Dst) / Scale;
+<a name="l00112"></a>00112 
+<a name="l00113"></a>00113   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BranchProbability.html">BranchProbability</a>(N, D);
+<a name="l00114"></a>00114 }
+<a name="l00115"></a>00115 
+<a name="l00116"></a>00116 <a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &<a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#ade0fae0d35a6b1dbd1aaf5b3606b0c8d">MachineBranchProbabilityInfo::</a>
+<a name="l00117"></a><a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#ade0fae0d35a6b1dbd1aaf5b3606b0c8d">00117</a> <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#ade0fae0d35a6b1dbd1aaf5b3606b0c8d">printEdgeProbability</a>(<a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &OS, <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Src,
+<a name="l00118"></a>00118                      <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Dst)<span class="keyword"> const </span>{
+<a name="l00119"></a>00119 
+<a name="l00120"></a>00120   <span class="keyword">const</span> <a class="code" href="classllvm_1_1BranchProbability.html">BranchProbability</a> Prob = <a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#a71021014177975263135fe6016076345">getEdgeProbability</a>(Src, Dst);
+<a name="l00121"></a>00121   OS << <span class="stringliteral">"edge MBB#"</span> << Src-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6acda287e5c19ffb173b0bf8f1dd9c5e">getNumber</a>() << <span class="stringliteral">" -> MBB#"</span> << Dst-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6acda287e5c19ffb173b0bf8f1dd9c5e">getNumber</a>()
+<a name="l00122"></a>00122      << <span class="stringliteral">" probability is "</span>  << Prob 
+<a name="l00123"></a>00123      << (<a class="code" href="classllvm_1_1MachineBranchProbabilityInfo.html#a580233dbe9ef523a79ce6ba45052ff2b">isEdgeHot</a>(Src, Dst) ? <span class="stringliteral">" [HOT edge]\n"</span> : <span class="stringliteral">"\n"</span>);
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125   <span class="keywordflow">return</span> OS;
+<a name="l00126"></a>00126 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:35:31 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineCSE_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineCSE_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineCSE_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineCSE_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,161 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineCSE.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/CodeGen/Passes.h",height=0.2,width=0.4,color="black",URL="$CodeGen_2Passes_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Pass.h",height=0.2,width=0.4,color="red",URL="$Pass_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/Target/TargetMachine.h",height=0.2,width=0.4,color="red",URL="$Target_2TargetMachine_8h.html"];
+  Node6 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="red",URL="$type__traits_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/CodeGen/MachineDominators.h",height=0.2,width=0.4,color="black",URL="$MachineDominators_8h.html"];
+  Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="red",URL="$MachineBasicBlock_8h.html"];
+  Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="black",URL="$MachineInstr_8h.html"];
+  Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/CodeGen/MachineOperand.h",height=0.2,width=0.4,color="red",URL="$MachineOperand_8h.html"];
+  Node15 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/MC/MCInstrDesc.h",height=0.2,width=0.4,color="red",URL="$MCInstrDesc_8h.html"];
+  Node14 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/Target/TargetOpcodes.h",height=0.2,width=0.4,color="black",URL="$TargetOpcodes_8h.html"];
+  Node14 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="red",URL="$ArrayRef_8h.html"];
+  Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="red",URL="$ilist_8h.html"];
+  Node20 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/ADT/ilist_node.h",height=0.2,width=0.4,color="black",URL="$ilist__node_8h.html"];
+  Node14 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="red",URL="$STLExtras_8h.html"];
+  Node23 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="red",URL="$PointerLikeTypeTraits_8h.html"];
+  Node24 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/InlineAsm.h",height=0.2,width=0.4,color="red",URL="$InlineAsm_8h.html"];
+  Node26 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node14 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/CodeGen/MachineFunction.h",height=0.2,width=0.4,color="red",URL="$MachineFunction_8h.html"];
+  Node28 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/CodeGen/MachineFunctionPass.h",height=0.2,width=0.4,color="black",URL="$MachineFunctionPass_8h.html"];
+  Node29 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Analysis/Dominators.h",height=0.2,width=0.4,color="red",URL="$Dominators_8h.html"];
+  Node30 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="red",URL="$DenseMap_8h.html"];
+  Node31 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="red",URL="$AlignOf_8h.html"];
+  Node32 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="red",URL="$MathExtras_8h.html"];
+  Node31 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="new",height=0.2,width=0.4,color="grey75"];
+  Node31 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/Analysis/DominatorInternals.h",height=0.2,width=0.4,color="red",URL="$DominatorInternals_8h.html"];
+  Node35 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/CodeGen/MachineRegisterInfo.h",height=0.2,width=0.4,color="black",URL="$MachineRegisterInfo_8h.html"];
+  Node36 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/Target/TargetRegisterInfo.h",height=0.2,width=0.4,color="red",URL="$TargetRegisterInfo_8h.html"];
+  Node37 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/CodeGen/MachineInstrBundle.h",height=0.2,width=0.4,color="black",URL="$MachineInstrBundle_8h.html"];
+  Node38 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/ADT/BitVector.h",height=0.2,width=0.4,color="red",URL="$BitVector_8h.html"];
+  Node39 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/ADT/IndexedMap.h",height=0.2,width=0.4,color="red",URL="$IndexedMap_8h.html"];
+  Node40 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/Analysis/AliasAnalysis.h",height=0.2,width=0.4,color="black",URL="$AliasAnalysis_8h.html"];
+  Node41 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/Support/CallSite.h",height=0.2,width=0.4,color="red",URL="$CallSite_8h.html"];
+  Node41 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/Target/TargetInstrInfo.h",height=0.2,width=0.4,color="black",URL="$TargetInstrInfo_8h.html"];
+  Node43 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/ADT/SmallSet.h",height=0.2,width=0.4,color="red",URL="$SmallSet_8h.html"];
+  Node43 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/MC/MCInstrInfo.h",height=0.2,width=0.4,color="black",URL="$MCInstrInfo_8h.html"];
+  Node45 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/CodeGen/DFAPacketizer.h",height=0.2,width=0.4,color="red",URL="$DFAPacketizer_8h.html"];
+  Node46 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/ADT/ScopedHashTable.h",height=0.2,width=0.4,color="red",URL="$ScopedHashTable_8h.html"];
+  Node47 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/ADT/Statistic.h",height=0.2,width=0.4,color="red",URL="$Statistic_8h.html"];
+  Node1 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Support/Debug.h",height=0.2,width=0.4,color="black",URL="$Debug_8h.html"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/Support/RecyclingAllocator.h",height=0.2,width=0.4,color="red",URL="$RecyclingAllocator_8h.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineCodeEmitter_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineCodeEmitter_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineCodeEmitter_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineCodeEmitter_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,21 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineCodeEmitter.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="string",height=0.2,width=0.4,color="grey75"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineCodeInfo_8h__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineCodeInfo_8h__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MachineCodeInfo_8h__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineConstantPool_8h__dep__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineConstantPool_8h__dep__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineConstantPool_8h__dep__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineConstantPool_8h__dep__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,51 @@
+<map id="G" name="G">
+<area shape="rect" href="$AsmPrinter_8cpp.html" title="AsmPrinter.cpp" alt="" coords="5,84,123,111"/>
+<area shape="rect" href="$MachineFunction_8cpp.html" title="MachineFunction.cpp" alt="" coords="147,84,301,111"/>
+<area shape="rect" href="$MachineInstr_8cpp.html" title="MachineInstr.cpp" alt="" coords="325,84,453,111"/>
+<area shape="rect" href="$ScheduleDAGPrinter_8cpp.html" title="ScheduleDAGPrinter.cpp" alt="" coords="477,84,653,111"/>
+<area shape="rect" href="$InstrEmitter_8cpp.html" title="InstrEmitter.cpp" alt="" coords="677,84,800,111"/>
+<area shape="rect" href="$SelectionDAG_8cpp.html" title="SelectionDAG.cpp" alt="" coords="824,84,960,111"/>
+<area shape="rect" href="$SelectionDAGDumper_8cpp.html" title="SelectionDAGDumper.cpp" alt="" coords="984,84,1171,111"/>
+<area shape="rect" href="$SelectionDAGPrinter_8cpp.html" title="SelectionDAGPrinter.cpp" alt="" coords="1195,84,1371,111"/>
+<area shape="rect" href="$JITEmitter_8cpp.html" title="JITEmitter.cpp" alt="" coords="1395,84,1501,111"/>
+<area shape="rect" href="$ARMJITInfo_8h.html" title="ARMJITInfo.h" alt="" coords="1627,84,1723,111"/>
+<area shape="rect" href="$ARMCodeEmitter_8cpp.html" title="ARMCodeEmitter.cpp" alt="" coords="1309,239,1464,265"/>
+<area shape="rect" href="$ARMFastISel_8cpp.html" title="ARMFastISel.cpp" alt="" coords="1539,239,1664,265"/>
+<area shape="rect" href="$ARMConstantPoolValue_8h.html" title="ARMConstantPoolValue.h" alt="" coords="1541,161,1723,188"/>
+<area shape="rect" href="$ARMBaseInstrInfo_8cpp.html" title="ARMBaseInstrInfo.cpp" alt="" coords="2219,239,2379,265"/>
+<area shape="rect" href="$ARMBaseRegisterInfo_8cpp.html" title="ARMBaseRegisterInfo.cpp" alt="" coords="1848,84,2029,111"/>
+<area shape="rect" href="$ARMConstantIslandPass_8cpp.html" title="ARMConstantIslandPass.cpp" alt="" coords="2053,84,2253,111"/>
+<area shape="rect" href="$Thumb1RegisterInfo_8cpp.html" title="Thumb1RegisterInfo.cpp" alt="" coords="2277,84,2451,111"/>
+<area shape="rect" href="$Thumb2RegisterInfo_8cpp.html" title="Thumb2RegisterInfo.cpp" alt="" coords="2475,84,2648,111"/>
+<area shape="rect" href="$SPUISelDAGToDAG_8cpp.html" title="SPUISelDAGToDAG.cpp" alt="" coords="2672,84,2840,111"/>
+<area shape="rect" href="$MBlazeAsmPrinter_8cpp.html" title="MBlazeAsmPrinter.cpp" alt="" coords="2864,84,3027,111"/>
+<area shape="rect" href="$MBlazeISelDAGToDAG_8cpp.html" title="MBlazeISelDAGToDAG.cpp" alt="" coords="3051,84,3237,111"/>
+<area shape="rect" href="$MipsJITInfo_8h.html" title="MipsJITInfo.h" alt="" coords="3261,84,3360,111"/>
+<area shape="rect" href="$MipsCodeEmitter_8cpp.html" title="MipsCodeEmitter.cpp" alt="" coords="3464,239,3619,265"/>
+<area shape="rect" href="$MipsISelDAGToDAG_8cpp.html" title="MipsISelDAGToDAG.cpp" alt="" coords="3643,239,3813,265"/>
+<area shape="rect" href="$MipsAsmPrinter_8cpp.html" title="MipsAsmPrinter.cpp" alt="" coords="3485,84,3632,111"/>
+<area shape="rect" href="$MSP430AsmPrinter_8cpp.html" title="MSP430AsmPrinter.cpp" alt="" coords="3656,84,3827,111"/>
+<area shape="rect" href="$X86FastISel_8cpp.html" title="X86FastISel.cpp" alt="" coords="3851,84,3971,111"/>
+<area shape="rect" href="$X86InstrInfo_8cpp.html" title="X86InstrInfo.cpp" alt="" coords="3995,84,4117,111"/>
+<area shape="rect" href="$X86ISelDAGToDAG_8cpp.html" title="X86ISelDAGToDAG.cpp" alt="" coords="4141,84,4307,111"/>
+<area shape="rect" href="$XCoreAsmPrinter_8cpp.html" title="XCoreAsmPrinter.cpp" alt="" coords="4331,84,4485,111"/>
+<area shape="rect" href="$ARMTargetMachine_8h.html" title="ARMTargetMachine.h" alt="" coords="889,161,1041,188"/>
+<area shape="rect" href="$ARMJITInfo_8cpp.html" title="ARMJITInfo.cpp" alt="" coords="2083,239,2195,265"/>
+<area shape="rect" href="$ARMAsmPrinter_8h.html" title="ARMAsmPrinter.h" alt="" coords="824,239,955,265"/>
+<area shape="rect" href="$ARMAsmPrinter_8cpp.html" title="ARMAsmPrinter.cpp" alt="" coords="816,316,963,343"/>
+<area shape="rect" href="$ARMInstrInfo_8cpp.html" title="ARMInstrInfo.cpp" alt="" coords="979,239,1107,265"/>
+<area shape="rect" href="$ARMISelDAGToDAG_8cpp.html" title="ARMISelDAGToDAG.cpp" alt="" coords="419,239,589,265"/>
+<area shape="rect" href="$ARMISelLowering_8cpp.html" title="ARMISelLowering.cpp" alt="" coords="1131,239,1285,265"/>
+<area shape="rect" href="$ARMSelectionDAGInfo_8cpp.html" title="ARMSelectionDAGInfo.cpp" alt="" coords="613,239,800,265"/>
+<area shape="rect" href="$ARMTargetMachine_8cpp.html" title="ARMTargetMachine.cpp" alt="" coords="176,239,344,265"/>
+<area shape="rect" href="$ARMConstantPoolValue_8cpp.html" title="ARMConstantPoolValue.cpp" alt="" coords="1864,239,2059,265"/>
+<area shape="rect" href="$Thumb2InstrInfo_8cpp.html" title="Thumb2InstrInfo.cpp" alt="" coords="1688,239,1840,265"/>
+<area shape="rect" href="$MipsTargetMachine_8h.html" title="MipsTargetMachine.h" alt="" coords="3069,161,3224,188"/>
+<area shape="rect" href="$MipsJITInfo_8cpp.html" title="MipsJITInfo.cpp" alt="" coords="3248,161,3360,188"/>
+<area shape="rect" href="$Mips16InstrInfo_8cpp.html" title="Mips16InstrInfo.cpp" alt="" coords="3107,239,3251,265"/>
+<area shape="rect" href="$MipsDelaySlotFiller_8cpp.html" title="MipsDelaySlotFiller.cpp" alt="" coords="3275,239,3440,265"/>
+<area shape="rect" href="$MipsFrameLowering_8cpp.html" title="MipsFrameLowering.cpp" alt="" coords="2403,239,2576,265"/>
+<area shape="rect" href="$MipsInstrInfo_8cpp.html" title="MipsInstrInfo.cpp" alt="" coords="2600,239,2728,265"/>
+<area shape="rect" href="$MipsISelLowering_8cpp.html" title="MipsISelLowering.cpp" alt="" coords="2752,239,2907,265"/>
+<area shape="rect" href="$MipsLongBranch_8cpp.html" title="MipsLongBranch.cpp" alt="" coords="2931,239,3083,265"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineConstantPool_8h__dep__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineConstantPool_8h__dep__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineConstantPool_8h__dep__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineConstantPool_8h__dep__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+d36a0f98840ffe825e83ffad0a36fe3b
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineConstantPool_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineConstantPool_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineConstantPool_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineConstantPool_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,66 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineConstantPool.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/ADT/DenseSet.h",height=0.2,width=0.4,color="black",URL="$DenseSet_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="black",URL="$DenseMap_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node5 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="black",URL="$MathExtras_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/Support/SwapByteOrder.h",height=0.2,width=0.4,color="black",URL="$SwapByteOrder_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node15 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node16 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node18 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="new",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="vector",height=0.2,width=0.4,color="grey75"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineCopyPropagation_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineCopyPropagation_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineCopyPropagation_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineCopyPropagation_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineCopyPropagation.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_f2244d21cf8bec63d11bfc1ad661d96f.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Defines</a> |
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">MachineCopyPropagation.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="CodeGen_2Passes_8h_source.html">llvm/CodeGen/Passes.h</a>"</code><br/>
+<code>#include "<a class="el" href="Pass_8h_source.html">llvm/Pass.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineFunction_8h_source.html">llvm/CodeGen/MachineFunction.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineFunctionPass_8h_source.html">llvm/CodeGen/MachineFunctionPass.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineRegisterInfo_8h_source.html">llvm/CodeGen/MachineRegisterInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetRegisterInfo_8h_source.html">llvm/Target/TargetRegisterInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="Debug_8h_source.html">llvm/Support/Debug.h</a>"</code><br/>
+<code>#include "<a class="el" href="ErrorHandling_8h_source.html">llvm/Support/ErrorHandling.h</a>"</code><br/>
+<code>#include "<a class="el" href="raw__ostream_8h_source.html">llvm/Support/raw_ostream.h</a>"</code><br/>
+<code>#include "<a class="el" href="BitVector_8h_source.html">llvm/ADT/BitVector.h</a>"</code><br/>
+<code>#include "<a class="el" href="DenseMap_8h_source.html">llvm/ADT/DenseMap.h</a>"</code><br/>
+<code>#include "<a class="el" href="SetVector_8h_source.html">llvm/ADT/SetVector.h</a>"</code><br/>
+<code>#include "<a class="el" href="SmallVector_8h_source.html">llvm/ADT/SmallVector.h</a>"</code><br/>
+<code>#include "<a class="el" href="Statistic_8h_source.html">llvm/ADT/Statistic.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for MachineCopyPropagation.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="MachineCopyPropagation_8cpp__incl.png" border="0" usemap="#MachineCopyPropagation_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="MachineCopyPropagation_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineCopyPropagation_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">DEBUG_TYPE</a>   "codegen-cp"</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineCopyPropagation_8cpp.html#a869d785e382fc8975112d551f9d5e3da">STATISTIC</a> (NumDeletes,"Number of dead copies deleted")</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineCopyPropagation_8cpp.html#ac663daf81bb81892dbffd27a0316a844">INITIALIZE_PASS</a> (MachineCopyPropagation,"machine-cp","Machine Copy <a class="el" href="SCCP_8cpp.html#aca90c04476481c4e92a815be5d7cb092">Propagation</a> <a class="el" href="classllvm_1_1Pass.html">Pass</a>", false, <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a>) void MachineCopyPropagation</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineCopyPropagation_8cpp.html#a062d85a5fdf3ea1a59022bee8a712273">NoInterveningSideEffect</a> (const <a class="el" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *CopyMI, const <a class="el" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineCopyPropagation_8cpp.html#a34b0614352ba6e3bf5e7f9dcef7dcc25">isNopCopy</a> (<a class="el" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *CopyMI, <a class="el" href="classunsigned.html">unsigned</a> Def, <a class="el" href="classunsigned.html">unsigned</a> Src, const <a class="el" href="classllvm_1_1TargetRegisterInfo.html">TargetRegisterInfo</a> *TRI)</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ad78e062f62e0d6e453941fb4ca843e4d"></a><!-- doxytag: member="MachineCopyPropagation.cpp::DEBUG_TYPE" ref="ad78e062f62e0d6e453941fb4ca843e4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DEBUG_TYPE   "codegen-cp"</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MachineCopyPropagation_8cpp_source.html#l00014">14</a> of file <a class="el" href="MachineCopyPropagation_8cpp_source.html">MachineCopyPropagation.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ac663daf81bb81892dbffd27a0316a844"></a><!-- doxytag: member="MachineCopyPropagation.cpp::INITIALIZE_PASS" ref="ac663daf81bb81892dbffd27a0316a844" args="(MachineCopyPropagation,"machine-cp","Machine Copy Propagation Pass", false, false) void MachineCopyPropagation" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">INITIALIZE_PASS </td>
+          <td>(</td>
+          <td class="paramtype">MachineCopyPropagation </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"machine-cp" </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Machine Copy <a class="el" href="SCCP_8cpp.html#aca90c04476481c4e92a815be5d7cb092">Propagation</a> <a class="el" href="classllvm_1_1Pass.html">Pass</a>" </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a> </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a> </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MachineCopyPropagation_8cpp_source.html#l00059">59</a> of file <a class="el" href="MachineCopyPropagation_8cpp_source.html">MachineCopyPropagation.cpp</a>.</p>
+
+<p>References <a class="el" href="ARMBaseInfo_8h_source.html#l00097">llvm::ARM_PROC::I</a>, and <a class="el" href="MCRegisterInfo_8h_source.html#l00207">llvm::MCRegisterInfo::DiffListIterator::isValid()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a34b0614352ba6e3bf5e7f9dcef7dcc25"></a><!-- doxytag: member="MachineCopyPropagation.cpp::isNopCopy" ref="a34b0614352ba6e3bf5e7f9dcef7dcc25" args="(MachineInstr *CopyMI, unsigned Def, unsigned Src, const TargetRegisterInfo *TRI)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> isNopCopy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1MachineInstr.html">MachineInstr</a> * </td>
+          <td class="paramname"><em>CopyMI</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classunsigned.html">unsigned</a> </td>
+          <td class="paramname"><em>Def</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classunsigned.html">unsigned</a> </td>
+          <td class="paramname"><em>Src</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classllvm_1_1TargetRegisterInfo.html">TargetRegisterInfo</a> * </td>
+          <td class="paramname"><em>TRI</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>isNopCopy - Return true if the specified copy is really a nop. That is if the source of the copy is the same of the definition of the copy that supplied the source. If the source of the copy is a sub-register than it must check the sub-indices match. e.g. ecx = mov eax al = mov cl But not ecx = mov eax al = mov ch </p>
+
+<p>Definition at line <a class="el" href="MachineCopyPropagation_8cpp_source.html#l00111">111</a> of file <a class="el" href="MachineCopyPropagation_8cpp_source.html">MachineCopyPropagation.cpp</a>.</p>
+
+<p>References <a class="el" href="MachineInstr_8h_source.html#l00249">llvm::MachineInstr::getOperand()</a>, <a class="el" href="MachineOperand_8h_source.html#l00257">llvm::MachineOperand::getReg()</a>, <a class="el" href="MCRegisterInfo_8cpp_source.html#l00038">llvm::MCRegisterInfo::getSubRegIndex()</a>, and <a class="el" href="TargetRegisterInfo_8h_source.html#l00392">llvm::TargetRegisterInfo::isSubRegister()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a062d85a5fdf3ea1a59022bee8a712273"></a><!-- doxytag: member="MachineCopyPropagation.cpp::NoInterveningSideEffect" ref="a062d85a5fdf3ea1a59022bee8a712273" args="(const MachineInstr *CopyMI, const MachineInstr *MI)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> NoInterveningSideEffect </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classllvm_1_1MachineInstr.html">MachineInstr</a> * </td>
+          <td class="paramname"><em>CopyMI</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classllvm_1_1MachineInstr.html">MachineInstr</a> * </td>
+          <td class="paramname"><em>MI</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MachineCopyPropagation_8cpp_source.html#l00083">83</a> of file <a class="el" href="MachineCopyPropagation_8cpp_source.html">MachineCopyPropagation.cpp</a>.</p>
+
+<p>References <a class="el" href="MachineBasicBlock_8h_source.html#l00235">llvm::MachineBasicBlock::end()</a>, <a class="el" href="MachineInstr_8h_source.html#l00118">llvm::MachineInstr::getParent()</a>, <a class="el" href="ARMBaseInfo_8h_source.html#l00097">llvm::ARM_PROC::I</a>, and <a class="el" href="ARMBaseInfo_8h_source.html#l00034">llvm::ARMCC::MI</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a869d785e382fc8975112d551f9d5e3da"></a><!-- doxytag: member="MachineCopyPropagation.cpp::STATISTIC" ref="a869d785e382fc8975112d551f9d5e3da" args="(NumDeletes,"Number of dead copies deleted")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumDeletes </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of dead copies deleted" </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:31 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineCopyPropagation_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineCopyPropagation_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineCopyPropagation_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineCopyPropagation_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,192 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineCopyPropagation.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/CodeGen/Passes.h",height=0.2,width=0.4,color="black",URL="$CodeGen_2Passes_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="red",URL="$PassSupport_8h.html"];
+  Node6 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="black",URL="$PassAnalysisSupport_8h.html"];
+  Node8 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="red",URL="$SmallVector_8h.html"];
+  Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node10 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node12 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node20 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/Target/TargetMachine.h",height=0.2,width=0.4,color="red",URL="$Target_2TargetMachine_8h.html"];
+  Node21 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/CodeGen/MachineFunction.h",height=0.2,width=0.4,color="black",URL="$MachineFunction_8h.html"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="red",URL="$MachineBasicBlock_8h.html"];
+  Node23 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node22 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="black",URL="$ilist_8h.html"];
+  Node25 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node22 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="black",URL="$Allocator_8h.html"];
+  Node27 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="red",URL="$MathExtras_8h.html"];
+  Node27 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/Support/Recycler.h",height=0.2,width=0.4,color="black",URL="$Recycler_8h.html"];
+  Node29 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node30 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/CodeGen/MachineFunctionPass.h",height=0.2,width=0.4,color="black",URL="$MachineFunctionPass_8h.html"];
+  Node31 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/CodeGen/MachineRegisterInfo.h",height=0.2,width=0.4,color="black",URL="$MachineRegisterInfo_8h.html"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Target/TargetRegisterInfo.h",height=0.2,width=0.4,color="black",URL="$TargetRegisterInfo_8h.html"];
+  Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/MC/MCRegisterInfo.h",height=0.2,width=0.4,color="black",URL="$MCRegisterInfo_8h.html"];
+  Node34 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="black",URL="$DenseMap_8h.html"];
+  Node35 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node36 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node37 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="new",height=0.2,width=0.4,color="grey75"];
+  Node35 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node35 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/CodeGen/ValueTypes.h",height=0.2,width=0.4,color="black",URL="$ValueTypes_8h.html"];
+  Node40 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="black",URL="$ArrayRef_8h.html"];
+  Node41 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node33 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/CodeGen/MachineInstrBundle.h",height=0.2,width=0.4,color="black",URL="$MachineInstrBundle_8h.html"];
+  Node43 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/ADT/BitVector.h",height=0.2,width=0.4,color="black",URL="$BitVector_8h.html"];
+  Node44 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/ADT/IndexedMap.h",height=0.2,width=0.4,color="red",URL="$IndexedMap_8h.html"];
+  Node45 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Support/Debug.h",height=0.2,width=0.4,color="black",URL="$Debug_8h.html"];
+  Node1 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node47 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/ADT/SetVector.h",height=0.2,width=0.4,color="black",URL="$SetVector_8h.html"];
+  Node48 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/ADT/SmallSet.h",height=0.2,width=0.4,color="red",URL="$SmallSet_8h.html"];
+  Node49 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/ADT/Statistic.h",height=0.2,width=0.4,color="red",URL="$Statistic_8h.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineCopyPropagation_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineCopyPropagation_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineCopyPropagation_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineCopyPropagation_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,376 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineCopyPropagation.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_f2244d21cf8bec63d11bfc1ad661d96f.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MachineCopyPropagation.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="MachineCopyPropagation_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===- MachineCopyPropagation.cpp - Machine Copy Propagation Pass ---------===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This is an extremely simple MachineInstr-level copy propagation pass.</span>
+<a name="l00011"></a>00011 <span class="comment">//</span>
+<a name="l00012"></a>00012 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00013"></a>00013 
+<a name="l00014"></a><a class="code" href="MachineCopyPropagation_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">00014</a> <span class="preprocessor">#define DEBUG_TYPE "codegen-cp"</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="CodeGen_2Passes_8h.html">llvm/CodeGen/Passes.h</a>"</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="Pass_8h.html">llvm/Pass.h</a>"</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="MachineFunction_8h.html">llvm/CodeGen/MachineFunction.h</a>"</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="MachineFunctionPass_8h.html">llvm/CodeGen/MachineFunctionPass.h</a>"</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include "<a class="code" href="MachineRegisterInfo_8h.html">llvm/CodeGen/MachineRegisterInfo.h</a>"</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="TargetRegisterInfo_8h.html">llvm/Target/TargetRegisterInfo.h</a>"</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="Debug_8h.html">llvm/Support/Debug.h</a>"</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="ErrorHandling_8h.html">llvm/Support/ErrorHandling.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="raw__ostream_8h.html">llvm/Support/raw_ostream.h</a>"</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="BitVector_8h.html">llvm/ADT/BitVector.h</a>"</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="DenseMap_8h.html">llvm/ADT/DenseMap.h</a>"</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="SetVector_8h.html">llvm/ADT/SetVector.h</a>"</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="SmallVector_8h.html">llvm/ADT/SmallVector.h</a>"</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="Statistic_8h.html">llvm/ADT/Statistic.h</a>"</span>
+<a name="l00029"></a>00029 <span class="keyword">using namespace </span>llvm;
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(NumDeletes, <span class="stringliteral">"Number of dead copies deleted"</span>);
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="keyword">namespace </span>{
+<a name="l00034"></a>00034   <span class="keyword">class </span>MachineCopyPropagation : <span class="keyword">public</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a> {
+<a name="l00035"></a>00035     <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterInfo.html">TargetRegisterInfo</a> *TRI;
+<a name="l00036"></a>00036     <a class="code" href="classllvm_1_1MachineRegisterInfo.html">MachineRegisterInfo</a> *MRI;
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038   <span class="keyword">public</span>:
+<a name="l00039"></a>00039     <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>; <span class="comment">// Pass identification, replacement for typeid</span>
+<a name="l00040"></a>00040     MachineCopyPropagation() : <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a>(<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>) {
+<a name="l00041"></a>00041      <a class="code" href="namespacellvm.html#ae82e2453afbac1bf4133795de92daefa">initializeMachineCopyPropagationPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00042"></a>00042     }
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> runOnMachineFunction(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF);
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046   <span class="keyword">private</span>:
+<a name="l00047"></a>00047     <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<unsigned, 4></a> DestList;
+<a name="l00048"></a>00048     <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, DestList></a> SourceMap;
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050     <span class="keywordtype">void</span> SourceNoLongerAvailable(<span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>,
+<a name="l00051"></a>00051                                  SourceMap &SrcMap,
+<a name="l00052"></a>00052                                  <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, MachineInstr*></a> &AvailCopyMap);
+<a name="l00053"></a>00053     <span class="keywordtype">bool</span> CopyPropagateBlock(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> &MBB);
+<a name="l00054"></a>00054   };
+<a name="l00055"></a>00055 }
+<a name="l00056"></a>00056 <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">MachineCopyPropagation::ID</a> = 0;
+<a name="l00057"></a><a class="code" href="namespacellvm.html#af5dc78ed1fd5966782d85bf389333790">00057</a> <span class="keywordtype">char</span> &<a class="code" href="namespacellvm.html#af5dc78ed1fd5966782d85bf389333790">llvm::MachineCopyPropagationID</a> = <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">MachineCopyPropagation::ID</a>;
+<a name="l00058"></a>00058 
+<a name="l00059"></a><a class="code" href="MachineCopyPropagation_8cpp.html#ac663daf81bb81892dbffd27a0316a844">00059</a> <a class="code" href="PassSupport_8h.html#af807c9595d50b45c0008924c4679c85c">INITIALIZE_PASS</a>(MachineCopyPropagation, <span class="stringliteral">"machine-cp"</span>,
+<a name="l00060"></a>00060                 <span class="stringliteral">"Machine Copy Propagation Pass"</span>, <span class="keyword">false</span>, <span class="keyword">false</span>)
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062 void
+<a name="l00063"></a>00063 MachineCopyPropagation::SourceNoLongerAvailable(<span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>,
+<a name="l00064"></a>00064                               SourceMap &SrcMap,
+<a name="l00065"></a>00065                               <a class="code" href="classllvm_1_1DenseMap.html">DenseMap</a><<span class="keywordtype">unsigned</span>, <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a>*> &AvailCopyMap) {
+<a name="l00066"></a>00066   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MCRegAliasIterator.html">MCRegAliasIterator</a> AI(Reg, TRI, <span class="keyword">true</span>); AI.<a class="code" href="classllvm_1_1MCRegisterInfo_1_1DiffListIterator.html#abccd358b92366e5284e7e674e86b241f" title="isValid - returns true if this iterator is not yet at the end.">isValid</a>(); ++AI) {
+<a name="l00067"></a>00067     SourceMap::iterator SI = SrcMap.find(*AI);
+<a name="l00068"></a>00068     <span class="keywordflow">if</span> (SI != SrcMap.end()) {
+<a name="l00069"></a>00069       <span class="keyword">const</span> DestList& Defs = SI->second;
+<a name="l00070"></a>00070       <span class="keywordflow">for</span> (DestList::const_iterator <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = Defs.begin(), E = Defs.end();
+<a name="l00071"></a>00071            <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00072"></a>00072         <span class="keywordtype">unsigned</span> MappedDef = *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00073"></a>00073         <span class="comment">// Source of copy is no longer available for propagation.</span>
+<a name="l00074"></a>00074         <span class="keywordflow">if</span> (AvailCopyMap.erase(MappedDef)) {
+<a name="l00075"></a>00075           <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MCSubRegIterator.html" title="MCSubRegIterator enumerates all sub-registers of Reg.">MCSubRegIterator</a> SR(MappedDef, TRI); SR.<a class="code" href="classllvm_1_1MCRegisterInfo_1_1DiffListIterator.html#abccd358b92366e5284e7e674e86b241f" title="isValid - returns true if this iterator is not yet at the end.">isValid</a>(); ++SR)
+<a name="l00076"></a>00076             AvailCopyMap.erase(*SR);
+<a name="l00077"></a>00077         }
+<a name="l00078"></a>00078       }
+<a name="l00079"></a>00079     }
+<a name="l00080"></a>00080   }
+<a name="l00081"></a>00081 }
+<a name="l00082"></a>00082 
+<a name="l00083"></a><a class="code" href="MachineCopyPropagation_8cpp.html#a062d85a5fdf3ea1a59022bee8a712273">00083</a> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="MachineCopyPropagation_8cpp.html#a062d85a5fdf3ea1a59022bee8a712273">NoInterveningSideEffect</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *CopyMI,
+<a name="l00084"></a>00084                                     <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>) {
+<a name="l00085"></a>00085   <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB = CopyMI-><a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>();
+<a name="l00086"></a>00086   <span class="keywordflow">if</span> (MI-><a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>() != MBB)
+<a name="l00087"></a>00087     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00088"></a>00088   <a class="code" href="classllvm_1_1MachineBasicBlock.html#a654b11787ac7c4344084d98bea7cf626">MachineBasicBlock::const_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = CopyMI;
+<a name="l00089"></a>00089   <a class="code" href="classllvm_1_1MachineBasicBlock.html#a654b11787ac7c4344084d98bea7cf626">MachineBasicBlock::const_iterator</a> E = MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#acbc921830578e2741be6549db716c0ce">end</a>();
+<a name="l00090"></a>00090   <a class="code" href="classllvm_1_1MachineBasicBlock.html#a654b11787ac7c4344084d98bea7cf626">MachineBasicBlock::const_iterator</a> E2 = <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>;
+<a name="l00091"></a>00091 
+<a name="l00092"></a>00092   ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00093"></a>00093   <span class="keywordflow">while</span> (I != E && I != E2) {
+<a name="l00094"></a>00094     <span class="keywordflow">if</span> (I->hasUnmodeledSideEffects() || I->isCall() ||
+<a name="l00095"></a>00095         I->isTerminator())
+<a name="l00096"></a>00096       <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00097"></a>00097     ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00098"></a>00098   }
+<a name="l00099"></a>00099   <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00100"></a>00100 }
+<a name="l00101"></a>00101 <span class="comment"></span>
+<a name="l00102"></a>00102 <span class="comment">/// isNopCopy - Return true if the specified copy is really a nop. That is</span>
+<a name="l00103"></a>00103 <span class="comment">/// if the source of the copy is the same of the definition of the copy that</span>
+<a name="l00104"></a>00104 <span class="comment">/// supplied the source. If the source of the copy is a sub-register than it</span>
+<a name="l00105"></a>00105 <span class="comment">/// must check the sub-indices match. e.g.</span>
+<a name="l00106"></a>00106 <span class="comment">/// ecx = mov eax</span>
+<a name="l00107"></a>00107 <span class="comment">/// al  = mov cl</span>
+<a name="l00108"></a>00108 <span class="comment">/// But not</span>
+<a name="l00109"></a>00109 <span class="comment">/// ecx = mov eax</span>
+<a name="l00110"></a>00110 <span class="comment">/// al  = mov ch</span>
+<a name="l00111"></a><a class="code" href="MachineCopyPropagation_8cpp.html#a34b0614352ba6e3bf5e7f9dcef7dcc25">00111</a> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="MachineCopyPropagation_8cpp.html#a34b0614352ba6e3bf5e7f9dcef7dcc25">isNopCopy</a>(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *CopyMI, <span class="keywordtype">unsigned</span> <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5aceb138f68fe183995736614928e3394a">Def</a>, <span class="keywordtype">unsigned</span> Src,
+<a name="l00112"></a>00112                       <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterInfo.html">TargetRegisterInfo</a> *TRI) {
+<a name="l00113"></a>00113   <span class="keywordtype">unsigned</span> SrcSrc = CopyMI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(1).<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l00114"></a>00114   <span class="keywordflow">if</span> (Def == SrcSrc)
+<a name="l00115"></a>00115     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00116"></a>00116   <span class="keywordflow">if</span> (TRI-><a class="code" href="classllvm_1_1TargetRegisterInfo.html#a75096e65ed07db7414979b43b30037f7">isSubRegister</a>(SrcSrc, Def)) {
+<a name="l00117"></a>00117     <span class="keywordtype">unsigned</span> SrcDef = CopyMI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(0).<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l00118"></a>00118     <span class="keywordtype">unsigned</span> SubIdx = TRI-><a class="code" href="classllvm_1_1MCRegisterInfo.html#a8a4879cb93d8065ac38108eefad3ef7c">getSubRegIndex</a>(SrcSrc, Def);
+<a name="l00119"></a>00119     <span class="keywordflow">if</span> (!SubIdx)
+<a name="l00120"></a>00120       <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00121"></a>00121     <span class="keywordflow">return</span> SubIdx == TRI-><a class="code" href="classllvm_1_1MCRegisterInfo.html#a8a4879cb93d8065ac38108eefad3ef7c">getSubRegIndex</a>(SrcDef, Src);
+<a name="l00122"></a>00122   }
+<a name="l00123"></a>00123 
+<a name="l00124"></a>00124   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00125"></a>00125 }
+<a name="l00126"></a>00126 
+<a name="l00127"></a>00127 <span class="keywordtype">bool</span> MachineCopyPropagation::CopyPropagateBlock(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> &MBB) {
+<a name="l00128"></a>00128   <a class="code" href="classllvm_1_1SmallSetVector.html" title="A SetVector that performs no allocations if smaller than a certain size.">SmallSetVector<MachineInstr*, 8></a> MaybeDeadCopies;  <span class="comment">// Candidates for deletion</span>
+<a name="l00129"></a>00129   <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, MachineInstr*></a> AvailCopyMap;    <span class="comment">// Def -> available copies map</span>
+<a name="l00130"></a>00130   <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, MachineInstr*></a> CopyMap;         <span class="comment">// Def -> copies map</span>
+<a name="l00131"></a>00131   SourceMap SrcMap; <span class="comment">// Src -> Def map</span>
+<a name="l00132"></a>00132 
+<a name="l00133"></a>00133   <span class="keywordtype">bool</span> Changed = <span class="keyword">false</span>;
+<a name="l00134"></a>00134   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = MBB.<a class="code" href="classllvm_1_1MachineBasicBlock.html#ab2d91e7bec944efcbc39d8e30644f111">begin</a>(), E = MBB.<a class="code" href="classllvm_1_1MachineBasicBlock.html#acbc921830578e2741be6549db716c0ce">end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ) {
+<a name="l00135"></a>00135     <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a> = &*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00136"></a>00136     ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00137"></a>00137 
+<a name="l00138"></a>00138     <span class="keywordflow">if</span> (MI-><a class="code" href="classllvm_1_1MachineInstr.html#ae0ac5973cd95f76e3365e67aaad69de6">isCopy</a>()) {
+<a name="l00139"></a>00139       <span class="keywordtype">unsigned</span> <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5aceb138f68fe183995736614928e3394a">Def</a> = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(0).<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l00140"></a>00140       <span class="keywordtype">unsigned</span> Src = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(1).<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l00141"></a>00141 
+<a name="l00142"></a>00142       <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1TargetRegisterInfo.html#ae62c5ea35b71f9020caa94340bc78f37">TargetRegisterInfo::isVirtualRegister</a>(Def) ||
+<a name="l00143"></a>00143           <a class="code" href="classllvm_1_1TargetRegisterInfo.html#ae62c5ea35b71f9020caa94340bc78f37">TargetRegisterInfo::isVirtualRegister</a>(Src))
+<a name="l00144"></a>00144         <a class="code" href="namespacellvm.html#af9521f126aaffcc4bbe06c554b8b4bc1">report_fatal_error</a>(<span class="stringliteral">"MachineCopyPropagation should be run after"</span>
+<a name="l00145"></a>00145                            <span class="stringliteral">" register allocation!"</span>);
+<a name="l00146"></a>00146 
+<a name="l00147"></a>00147       <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, MachineInstr*>::iterator</a> CI = AvailCopyMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a21cf94357e53cd1069aba475266fdb63">find</a>(Src);
+<a name="l00148"></a>00148       <span class="keywordflow">if</span> (CI != AvailCopyMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>()) {
+<a name="l00149"></a>00149         <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *CopyMI = CI->second;
+<a name="l00150"></a>00150         <span class="keywordflow">if</span> (!MRI->isReserved(Def) &&
+<a name="l00151"></a>00151             (!MRI->isReserved(Src) || <a class="code" href="MachineCopyPropagation_8cpp.html#a062d85a5fdf3ea1a59022bee8a712273">NoInterveningSideEffect</a>(CopyMI, MI)) &&
+<a name="l00152"></a>00152             <a class="code" href="MachineCopyPropagation_8cpp.html#a34b0614352ba6e3bf5e7f9dcef7dcc25">isNopCopy</a>(CopyMI, Def, Src, TRI)) {
+<a name="l00153"></a>00153           <span class="comment">// The two copies cancel out and the source of the first copy</span>
+<a name="l00154"></a>00154           <span class="comment">// hasn't been overridden, eliminate the second one. e.g.</span>
+<a name="l00155"></a>00155           <span class="comment">//  %ECX<def> = COPY %EAX<kill></span>
+<a name="l00156"></a>00156           <span class="comment">//  ... nothing clobbered EAX.</span>
+<a name="l00157"></a>00157           <span class="comment">//  %EAX<def> = COPY %ECX</span>
+<a name="l00158"></a>00158           <span class="comment">// =></span>
+<a name="l00159"></a>00159           <span class="comment">//  %ECX<def> = COPY %EAX</span>
+<a name="l00160"></a>00160           <span class="comment">//</span>
+<a name="l00161"></a>00161           <span class="comment">// Also avoid eliminating a copy from reserved registers unless the</span>
+<a name="l00162"></a>00162           <span class="comment">// definition is proven not clobbered. e.g.</span>
+<a name="l00163"></a>00163           <span class="comment">// %RSP<def> = COPY %RAX</span>
+<a name="l00164"></a>00164           <span class="comment">// CALL</span>
+<a name="l00165"></a>00165           <span class="comment">// %RAX<def> = COPY %RSP</span>
+<a name="l00166"></a>00166 
+<a name="l00167"></a>00167           <span class="comment">// Clear any kills of Def between CopyMI and MI. This extends the</span>
+<a name="l00168"></a>00168           <span class="comment">// live range.</span>
+<a name="l00169"></a>00169           <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = CopyMI, E = MI; <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00170"></a>00170             <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>->clearRegisterKills(Def, TRI);
+<a name="l00171"></a>00171 
+<a name="l00172"></a>00172           MI-><a class="code" href="classllvm_1_1MachineInstr.html#ac2421adbb9996e1b15f03a8abb6c70a8">eraseFromParent</a>();
+<a name="l00173"></a>00173           Changed = <span class="keyword">true</span>;
+<a name="l00174"></a>00174           ++NumDeletes;
+<a name="l00175"></a>00175           <span class="keywordflow">continue</span>;
+<a name="l00176"></a>00176         }
+<a name="l00177"></a>00177       }
+<a name="l00178"></a>00178 
+<a name="l00179"></a>00179       <span class="comment">// If Src is defined by a previous copy, it cannot be eliminated.</span>
+<a name="l00180"></a>00180       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MCRegAliasIterator.html">MCRegAliasIterator</a> AI(Src, TRI, <span class="keyword">true</span>); AI.<a class="code" href="classllvm_1_1MCRegisterInfo_1_1DiffListIterator.html#abccd358b92366e5284e7e674e86b241f" title="isValid - returns true if this iterator is not yet at the end.">isValid</a>(); ++AI) {
+<a name="l00181"></a>00181         CI = CopyMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a21cf94357e53cd1069aba475266fdb63">find</a>(*AI);
+<a name="l00182"></a>00182         <span class="keywordflow">if</span> (CI != CopyMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>())
+<a name="l00183"></a>00183           MaybeDeadCopies.<a class="code" href="classllvm_1_1SetVector.html#a6357ff5654c7cbe5fed8516dc8328eb4" title="Remove an item from the set vector.">remove</a>(CI->second);
+<a name="l00184"></a>00184       }
+<a name="l00185"></a>00185 
+<a name="l00186"></a>00186       <span class="comment">// Copy is now a candidate for deletion.</span>
+<a name="l00187"></a>00187       MaybeDeadCopies.<a class="code" href="classllvm_1_1SetVector.html#a72d928b7fc2c5f2d56c6ac0265fd9c6e" title="Insert a new element into the SetVector.">insert</a>(MI);
+<a name="l00188"></a>00188 
+<a name="l00189"></a>00189       <span class="comment">// If 'Src' is previously source of another copy, then this earlier copy's</span>
+<a name="l00190"></a>00190       <span class="comment">// source is no longer available. e.g.</span>
+<a name="l00191"></a>00191       <span class="comment">// %xmm9<def> = copy %xmm2</span>
+<a name="l00192"></a>00192       <span class="comment">// ...</span>
+<a name="l00193"></a>00193       <span class="comment">// %xmm2<def> = copy %xmm0</span>
+<a name="l00194"></a>00194       <span class="comment">// ...</span>
+<a name="l00195"></a>00195       <span class="comment">// %xmm2<def> = copy %xmm9</span>
+<a name="l00196"></a>00196       SourceNoLongerAvailable(Def, SrcMap, AvailCopyMap);
+<a name="l00197"></a>00197 
+<a name="l00198"></a>00198       <span class="comment">// Remember Def is defined by the copy.</span>
+<a name="l00199"></a>00199       <span class="comment">// ... Make sure to clear the def maps of aliases first.</span>
+<a name="l00200"></a>00200       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MCRegAliasIterator.html">MCRegAliasIterator</a> AI(Def, TRI, <span class="keyword">false</span>); AI.<a class="code" href="classllvm_1_1MCRegisterInfo_1_1DiffListIterator.html#abccd358b92366e5284e7e674e86b241f" title="isValid - returns true if this iterator is not yet at the end.">isValid</a>(); ++AI) {
+<a name="l00201"></a>00201         CopyMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a269c7b8adcd29645a4f901196fc08806">erase</a>(*AI);
+<a name="l00202"></a>00202         AvailCopyMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a269c7b8adcd29645a4f901196fc08806">erase</a>(*AI);
+<a name="l00203"></a>00203       }
+<a name="l00204"></a>00204       CopyMap[<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5aceb138f68fe183995736614928e3394a">Def</a>] = <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>;
+<a name="l00205"></a>00205       AvailCopyMap[<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5aceb138f68fe183995736614928e3394a">Def</a>] = <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>;
+<a name="l00206"></a>00206       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MCSubRegIterator.html" title="MCSubRegIterator enumerates all sub-registers of Reg.">MCSubRegIterator</a> SR(Def, TRI); SR.<a class="code" href="classllvm_1_1MCRegisterInfo_1_1DiffListIterator.html#abccd358b92366e5284e7e674e86b241f" title="isValid - returns true if this iterator is not yet at the end.">isValid</a>(); ++SR) {
+<a name="l00207"></a>00207         CopyMap[*SR] = <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>;
+<a name="l00208"></a>00208         AvailCopyMap[*SR] = <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>;
+<a name="l00209"></a>00209       }
+<a name="l00210"></a>00210 
+<a name="l00211"></a>00211       <span class="comment">// Remember source that's copied to Def. Once it's clobbered, then</span>
+<a name="l00212"></a>00212       <span class="comment">// it's no longer available for copy propagation.</span>
+<a name="l00213"></a>00213       <span class="keywordflow">if</span> (std::find(SrcMap[Src].<a class="code" href="namespacellvm_1_1sys_1_1path.html#a33706aab89e700b8f79e1fa6f4f0e3ee" title="Get begin iterator over path.">begin</a>(), SrcMap[Src].<a class="code" href="namespacellvm_1_1sys_1_1path.html#a214ec2f04ffd92636ed4bd2717607a1d" title="Get end iterator over path.">end</a>(), Def) ==
+<a name="l00214"></a>00214           SrcMap[Src].end()) {
+<a name="l00215"></a>00215         SrcMap[Src].push_back(Def);
+<a name="l00216"></a>00216       }
+<a name="l00217"></a>00217 
+<a name="l00218"></a>00218       <span class="keywordflow">continue</span>;
+<a name="l00219"></a>00219     }
+<a name="l00220"></a>00220 
+<a name="l00221"></a>00221     <span class="comment">// Not a copy.</span>
+<a name="l00222"></a>00222     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<unsigned, 2></a> Defs;
+<a name="l00223"></a>00223     <span class="keywordtype">int</span> RegMaskOpNum = -1;
+<a name="l00224"></a>00224     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a7b5fe96d88954efc855e6c466207e535">getNumOperands</a>(); i != e; ++i) {
+<a name="l00225"></a>00225       <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i);
+<a name="l00226"></a>00226       <span class="keywordflow">if</span> (MO.<a class="code" href="classllvm_1_1MachineOperand.html#a2c5eddfba64e7a44deba1b5a0d45a017" title="isRegMask - Tests if this is a MO_RegisterMask operand.">isRegMask</a>())
+<a name="l00227"></a>00227         RegMaskOpNum = i;
+<a name="l00228"></a>00228       <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>())
+<a name="l00229"></a>00229         <span class="keywordflow">continue</span>;
+<a name="l00230"></a>00230       <span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a> = MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l00231"></a>00231       <span class="keywordflow">if</span> (!Reg)
+<a name="l00232"></a>00232         <span class="keywordflow">continue</span>;
+<a name="l00233"></a>00233 
+<a name="l00234"></a>00234       <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1TargetRegisterInfo.html#ae62c5ea35b71f9020caa94340bc78f37">TargetRegisterInfo::isVirtualRegister</a>(Reg))
+<a name="l00235"></a>00235         <a class="code" href="namespacellvm.html#af9521f126aaffcc4bbe06c554b8b4bc1">report_fatal_error</a>(<span class="stringliteral">"MachineCopyPropagation should be run after"</span>
+<a name="l00236"></a>00236                            <span class="stringliteral">" register allocation!"</span>);
+<a name="l00237"></a>00237 
+<a name="l00238"></a>00238       <span class="keywordflow">if</span> (MO.<a class="code" href="classllvm_1_1MachineOperand.html#a8de7d5cf38939044471c6ee60a01a3df">isDef</a>()) {
+<a name="l00239"></a>00239         Defs.<a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(Reg);
+<a name="l00240"></a>00240         <span class="keywordflow">continue</span>;
+<a name="l00241"></a>00241       }
+<a name="l00242"></a>00242 
+<a name="l00243"></a>00243       <span class="comment">// If 'Reg' is defined by a copy, the copy is no longer a candidate</span>
+<a name="l00244"></a>00244       <span class="comment">// for elimination.</span>
+<a name="l00245"></a>00245       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MCRegAliasIterator.html">MCRegAliasIterator</a> AI(Reg, TRI, <span class="keyword">true</span>); AI.<a class="code" href="classllvm_1_1MCRegisterInfo_1_1DiffListIterator.html#abccd358b92366e5284e7e674e86b241f" title="isValid - returns true if this iterator is not yet at the end.">isValid</a>(); ++AI) {
+<a name="l00246"></a>00246         <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, MachineInstr*>::iterator</a> CI = CopyMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a21cf94357e53cd1069aba475266fdb63">find</a>(*AI);
+<a name="l00247"></a>00247         <span class="keywordflow">if</span> (CI != CopyMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>())
+<a name="l00248"></a>00248           MaybeDeadCopies.<a class="code" href="classllvm_1_1SetVector.html#a6357ff5654c7cbe5fed8516dc8328eb4" title="Remove an item from the set vector.">remove</a>(CI->second);
+<a name="l00249"></a>00249       }
+<a name="l00250"></a>00250     }
+<a name="l00251"></a>00251 
+<a name="l00252"></a>00252     <span class="comment">// The instruction has a register mask operand which means that it clobbers</span>
+<a name="l00253"></a>00253     <span class="comment">// a large set of registers.  It is possible to use the register mask to</span>
+<a name="l00254"></a>00254     <span class="comment">// prune the available copies, but treat it like a basic block boundary for</span>
+<a name="l00255"></a>00255     <span class="comment">// now.</span>
+<a name="l00256"></a>00256     <span class="keywordflow">if</span> (RegMaskOpNum >= 0) {
+<a name="l00257"></a>00257       <span class="comment">// Erase any MaybeDeadCopies whose destination register is clobbered.</span>
+<a name="l00258"></a>00258       <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MaskMO = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(RegMaskOpNum);
+<a name="l00259"></a>00259       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallSetVector.html" title="A SetVector that performs no allocations if smaller than a certain size.">SmallSetVector<MachineInstr*, 8>::iterator</a>
+<a name="l00260"></a>00260            DI = MaybeDeadCopies.<a class="code" href="classllvm_1_1SetVector.html#adb13793b98ab59209a5309d26f831850" title="Get an iterator to the beginning of the SetVector.">begin</a>(), <a class="code" href="namespacellvm_1_1X86II.html#acd283bc8136a594505ec483f4a1cc933a2c6497f6ed5314c6fcd9ab88c9528543">DE</a> = MaybeDeadCopies.<a class="code" href="classllvm_1_1SetVector.html#affac0dc3d407ef3dee29b8bc9a4836bc" title="Get an iterator to the end of the SetVector.">end</a>();
+<a name="l00261"></a>00261            DI != <a class="code" href="namespacellvm_1_1X86II.html#acd283bc8136a594505ec483f4a1cc933a2c6497f6ed5314c6fcd9ab88c9528543">DE</a>; ++DI) {
+<a name="l00262"></a>00262         <span class="keywordtype">unsigned</span> Reg = (*DI)->getOperand(0).getReg();
+<a name="l00263"></a>00263         <span class="keywordflow">if</span> (MRI->isReserved(Reg) || !MaskMO.<a class="code" href="classllvm_1_1MachineOperand.html#ad5bef9f5be828b62f053b3017eb9dbdb">clobbersPhysReg</a>(Reg))
+<a name="l00264"></a>00264           <span class="keywordflow">continue</span>;
+<a name="l00265"></a>00265         (*DI)->eraseFromParent();
+<a name="l00266"></a>00266         Changed = <span class="keyword">true</span>;
+<a name="l00267"></a>00267         ++NumDeletes;
+<a name="l00268"></a>00268       }
+<a name="l00269"></a>00269 
+<a name="l00270"></a>00270       <span class="comment">// Clear all data structures as if we were beginning a new basic block.</span>
+<a name="l00271"></a>00271       MaybeDeadCopies.<a class="code" href="classllvm_1_1SetVector.html#a96bda22e654a59fec0620767b56dd53f" title="Completely clear the SetVector.">clear</a>();
+<a name="l00272"></a>00272       AvailCopyMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a6467bd6bb128c8b69a478548fc17351c">clear</a>();
+<a name="l00273"></a>00273       CopyMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a6467bd6bb128c8b69a478548fc17351c">clear</a>();
+<a name="l00274"></a>00274       SrcMap.clear();
+<a name="l00275"></a>00275       <span class="keywordflow">continue</span>;
+<a name="l00276"></a>00276     }
+<a name="l00277"></a>00277 
+<a name="l00278"></a>00278     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Defs.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>(); i != e; ++i) {
+<a name="l00279"></a>00279       <span class="keywordtype">unsigned</span> Reg = Defs[i];
+<a name="l00280"></a>00280 
+<a name="l00281"></a>00281       <span class="comment">// No longer defined by a copy.</span>
+<a name="l00282"></a>00282       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MCRegAliasIterator.html">MCRegAliasIterator</a> AI(Reg, TRI, <span class="keyword">true</span>); AI.<a class="code" href="classllvm_1_1MCRegisterInfo_1_1DiffListIterator.html#abccd358b92366e5284e7e674e86b241f" title="isValid - returns true if this iterator is not yet at the end.">isValid</a>(); ++AI) {
+<a name="l00283"></a>00283         CopyMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a269c7b8adcd29645a4f901196fc08806">erase</a>(*AI);
+<a name="l00284"></a>00284         AvailCopyMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a269c7b8adcd29645a4f901196fc08806">erase</a>(*AI);
+<a name="l00285"></a>00285       }
+<a name="l00286"></a>00286 
+<a name="l00287"></a>00287       <span class="comment">// If 'Reg' is previously source of a copy, it is no longer available for</span>
+<a name="l00288"></a>00288       <span class="comment">// copy propagation.</span>
+<a name="l00289"></a>00289       SourceNoLongerAvailable(Reg, SrcMap, AvailCopyMap);
+<a name="l00290"></a>00290     }
+<a name="l00291"></a>00291   }
+<a name="l00292"></a>00292 
+<a name="l00293"></a>00293   <span class="comment">// If MBB doesn't have successors, delete the copies whose defs are not used.</span>
+<a name="l00294"></a>00294   <span class="comment">// If MBB does have successors, then conservative assume the defs are live-out</span>
+<a name="l00295"></a>00295   <span class="comment">// since we don't want to trust live-in lists.</span>
+<a name="l00296"></a>00296   <span class="keywordflow">if</span> (MBB.<a class="code" href="classllvm_1_1MachineBasicBlock.html#a1570dd3a2568ba5e52073cdf6d904ee9">succ_empty</a>()) {
+<a name="l00297"></a>00297     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallSetVector.html" title="A SetVector that performs no allocations if smaller than a certain size.">SmallSetVector<MachineInstr*, 8>::iterator</a>
+<a name="l00298"></a>00298            DI = MaybeDeadCopies.<a class="code" href="classllvm_1_1SetVector.html#adb13793b98ab59209a5309d26f831850" title="Get an iterator to the beginning of the SetVector.">begin</a>(), <a class="code" href="namespacellvm_1_1X86II.html#acd283bc8136a594505ec483f4a1cc933a2c6497f6ed5314c6fcd9ab88c9528543">DE</a> = MaybeDeadCopies.<a class="code" href="classllvm_1_1SetVector.html#affac0dc3d407ef3dee29b8bc9a4836bc" title="Get an iterator to the end of the SetVector.">end</a>();
+<a name="l00299"></a>00299          DI != <a class="code" href="namespacellvm_1_1X86II.html#acd283bc8136a594505ec483f4a1cc933a2c6497f6ed5314c6fcd9ab88c9528543">DE</a>; ++DI) {
+<a name="l00300"></a>00300       <span class="keywordflow">if</span> (!MRI->isReserved((*DI)->getOperand(0).getReg())) {
+<a name="l00301"></a>00301         (*DI)->eraseFromParent();
+<a name="l00302"></a>00302         Changed = <span class="keyword">true</span>;
+<a name="l00303"></a>00303         ++NumDeletes;
+<a name="l00304"></a>00304       }
+<a name="l00305"></a>00305     }
+<a name="l00306"></a>00306   }
+<a name="l00307"></a>00307 
+<a name="l00308"></a>00308   <span class="keywordflow">return</span> Changed;
+<a name="l00309"></a>00309 }
+<a name="l00310"></a>00310 
+<a name="l00311"></a>00311 <span class="keywordtype">bool</span> MachineCopyPropagation::runOnMachineFunction(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF) {
+<a name="l00312"></a>00312   <span class="keywordtype">bool</span> Changed = <span class="keyword">false</span>;
+<a name="l00313"></a>00313 
+<a name="l00314"></a>00314   TRI = MF.<a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>().<a class="code" href="classllvm_1_1TargetMachine.html#a70b47eca6a99c87b81f4c1b1455dc090">getRegisterInfo</a>();
+<a name="l00315"></a>00315   MRI = &MF.<a class="code" href="classllvm_1_1MachineFunction.html#ab4a6ca428289b667dd691a00e9f7e334">getRegInfo</a>();
+<a name="l00316"></a>00316 
+<a name="l00317"></a>00317   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = MF.<a class="code" href="classllvm_1_1MachineFunction.html#ab0789854909cf47f640a85fa2bac29c7">begin</a>(), E = MF.<a class="code" href="classllvm_1_1MachineFunction.html#a9d017af749f76484cb9aec9ff6e4330c">end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00318"></a>00318     Changed |= CopyPropagateBlock(*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l00319"></a>00319 
+<a name="l00320"></a>00320   <span class="keywordflow">return</span> Changed;
+<a name="l00321"></a>00321 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:35:32 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineDominators_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineDominators_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineDominators_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineDominators_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,171 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineDominators.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/CodeGen/MachineDominators.h",height=0.2,width=0.4,color="black",URL="$MachineDominators_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="black",URL="$MachineBasicBlock_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="black",URL="$MachineInstr_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/CodeGen/MachineOperand.h",height=0.2,width=0.4,color="black",URL="$MachineOperand_8h.html"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/MC/MCInstrDesc.h",height=0.2,width=0.4,color="black",URL="$MCInstrDesc_8h.html"];
+  Node12 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/Target/TargetOpcodes.h",height=0.2,width=0.4,color="black",URL="$TargetOpcodes_8h.html"];
+  Node4 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="black",URL="$ArrayRef_8h.html"];
+  Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="red",URL="$SmallVector_8h.html"];
+  Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="red",URL="$ilist_8h.html"];
+  Node20 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/ADT/ilist_node.h",height=0.2,width=0.4,color="black",URL="$ilist__node_8h.html"];
+  Node4 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="red",URL="$STLExtras_8h.html"];
+  Node22 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node24 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="red",URL="$DenseMapInfo_8h.html"];
+  Node4 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/InlineAsm.h",height=0.2,width=0.4,color="red",URL="$InlineAsm_8h.html"];
+  Node27 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node4 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/CodeGen/MachineFunction.h",height=0.2,width=0.4,color="black",URL="$MachineFunction_8h.html"];
+  Node30 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="red",URL="$Allocator_8h.html"];
+  Node31 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Support/Recycler.h",height=0.2,width=0.4,color="red",URL="$Recycler_8h.html"];
+  Node32 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/CodeGen/MachineFunctionPass.h",height=0.2,width=0.4,color="black",URL="$MachineFunctionPass_8h.html"];
+  Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node34 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="red",URL="$PassSupport_8h.html"];
+  Node35 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="black",URL="$PassAnalysisSupport_8h.html"];
+  Node36 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/Analysis/Dominators.h",height=0.2,width=0.4,color="black",URL="$Dominators_8h.html"];
+  Node37 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Function.h",height=0.2,width=0.4,color="red",URL="$Function_8h.html"];
+  Node38 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="red",URL="$DenseMap_8h.html"];
+  Node39 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/ADT/DepthFirstIterator.h",height=0.2,width=0.4,color="red",URL="$DepthFirstIterator_8h.html"];
+  Node40 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/ADT/SmallPtrSet.h",height=0.2,width=0.4,color="red",URL="$SmallPtrSet_8h.html"];
+  Node41 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/Support/CFG.h",height=0.2,width=0.4,color="red",URL="$CFG_8h.html"];
+  Node42 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node43 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/Analysis/DominatorInternals.h",height=0.2,width=0.4,color="black",URL="$DominatorInternals_8h.html"];
+  Node44 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/CodeGen/Passes.h",height=0.2,width=0.4,color="black",URL="$CodeGen_2Passes_8h.html"];
+  Node45 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Target/TargetMachine.h",height=0.2,width=0.4,color="black",URL="$Target_2TargetMachine_8h.html"];
+  Node46 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Support/CodeGen.h",height=0.2,width=0.4,color="black",URL="$CodeGen_8h.html"];
+  Node46 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/Target/TargetOptions.h",height=0.2,width=0.4,color="black",URL="$TargetOptions_8h.html"];
+  Node48 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/TargetTransformInfo.h",height=0.2,width=0.4,color="red",URL="$TargetTransformInfo_8h.html"];
+  Node49 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/Target/TargetTransformImpl.h",height=0.2,width=0.4,color="red",URL="$TargetTransformImpl_8h.html"];
+  Node50 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineDominators_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineDominators_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineDominators_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineDominators_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,176 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineDominators.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="black",URL="$MachineBasicBlock_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="black",URL="$MachineInstr_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/CodeGen/MachineOperand.h",height=0.2,width=0.4,color="black",URL="$MachineOperand_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="llvm/MC/MCInstrDesc.h",height=0.2,width=0.4,color="black",URL="$MCInstrDesc_8h.html"];
+  Node11 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/Target/TargetOpcodes.h",height=0.2,width=0.4,color="black",URL="$TargetOpcodes_8h.html"];
+  Node3 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="black",URL="$ArrayRef_8h.html"];
+  Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="red",URL="$SmallVector_8h.html"];
+  Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node13 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="black",URL="$ilist_8h.html"];
+  Node22 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/ADT/ilist_node.h",height=0.2,width=0.4,color="black",URL="$ilist__node_8h.html"];
+  Node3 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="red",URL="$STLExtras_8h.html"];
+  Node24 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node24 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node26 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="red",URL="$DenseMapInfo_8h.html"];
+  Node3 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/InlineAsm.h",height=0.2,width=0.4,color="red",URL="$InlineAsm_8h.html"];
+  Node29 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node3 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/CodeGen/MachineFunction.h",height=0.2,width=0.4,color="black",URL="$MachineFunction_8h.html"];
+  Node32 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="black",URL="$Allocator_8h.html"];
+  Node33 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="red",URL="$MathExtras_8h.html"];
+  Node33 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/Support/Recycler.h",height=0.2,width=0.4,color="black",URL="$Recycler_8h.html"];
+  Node35 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node36 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/CodeGen/MachineFunctionPass.h",height=0.2,width=0.4,color="black",URL="$MachineFunctionPass_8h.html"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node38 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="red",URL="$PassSupport_8h.html"];
+  Node39 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="black",URL="$PassAnalysisSupport_8h.html"];
+  Node40 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/Analysis/Dominators.h",height=0.2,width=0.4,color="black",URL="$Dominators_8h.html"];
+  Node41 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/Function.h",height=0.2,width=0.4,color="red",URL="$Function_8h.html"];
+  Node42 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/GlobalValue.h",height=0.2,width=0.4,color="red",URL="$GlobalValue_8h.html"];
+  Node42 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node42 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="red",URL="$DenseMap_8h.html"];
+  Node45 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/ADT/DepthFirstIterator.h",height=0.2,width=0.4,color="red",URL="$DepthFirstIterator_8h.html"];
+  Node46 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/ADT/SmallPtrSet.h",height=0.2,width=0.4,color="red",URL="$SmallPtrSet_8h.html"];
+  Node47 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/Support/CFG.h",height=0.2,width=0.4,color="red",URL="$CFG_8h.html"];
+  Node48 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node49 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/Analysis/DominatorInternals.h",height=0.2,width=0.4,color="black",URL="$DominatorInternals_8h.html"];
+  Node50 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineFrameInfo.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_33f9015af551a3c03ac5a968f2023d57.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">MachineFrameInfo.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="SmallVector_8h_source.html">llvm/ADT/SmallVector.h</a>"</code><br/>
+<code>#include "<a class="el" href="DataTypes_8h_source.html">llvm/Support/DataTypes.h</a>"</code><br/>
+<code>#include <cassert></code><br/>
+<code>#include <vector></code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for MachineFrameInfo.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="MachineFrameInfo_8h__incl.png" border="0" usemap="#MachineFrameInfo_8h" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="MachineFrameInfo_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1CalleeSavedInfo.html">llvm::CalleeSavedInfo</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1MachineFrameInfo.html">llvm::MachineFrameInfo</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Abstract Stack Frame Information.  <a href="classllvm_1_1MachineFrameInfo.html#details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><b>llvm::MachineFrameInfo::StackObject</b></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html">llvm</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>List of target independent CodeGen pass IDs. </p>
+<br/></td></tr>
+</table>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:31 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,7 @@
+<map id="G" name="G">
+<area shape="rect" href="$SmallVector_8h.html" title="llvm/ADT/SmallVector.h" alt="" coords="584,84,752,111"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="739,239,923,265"/>
+<area shape="rect" href="$AlignOf_8h.html" title="llvm/Support/AlignOf.h" alt="" coords="83,161,245,188"/>
+<area shape="rect" href="$Compiler_8h.html" title="llvm/Support/Compiler.h" alt="" coords="5,239,179,265"/>
+<area shape="rect" href="$type__traits_8h.html" title="llvm/Support/type_traits.h" alt="" coords="320,161,507,188"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+1452927d8294ab6eb5be05ea1886aecb
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MachineFrameInfo_8h__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionAnalysis_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionAnalysis_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionAnalysis_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionAnalysis_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineFunctionAnalysis.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_f2244d21cf8bec63d11bfc1ad661d96f.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MachineFunctionAnalysis.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="MachineFunctionAnalysis_8h_source.html">llvm/CodeGen/MachineFunctionAnalysis.h</a>"</code><br/>
+<code>#include "<a class="el" href="GCMetadata_8h_source.html">llvm/CodeGen/GCMetadata.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineFunction_8h_source.html">llvm/CodeGen/MachineFunction.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineModuleInfo_8h_source.html">llvm/CodeGen/MachineModuleInfo.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for MachineFunctionAnalysis.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="MachineFunctionAnalysis_8cpp__incl.png" border="0" usemap="#MachineFunctionAnalysis_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="MachineFunctionAnalysis_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:31 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionAnalysis_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionAnalysis_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionAnalysis_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionAnalysis_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,182 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineFunctionAnalysis.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/CodeGen/MachineFunctionAnalysis.h",height=0.2,width=0.4,color="black",URL="$MachineFunctionAnalysis_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="red",URL="$PassSupport_8h.html"];
+  Node6 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="red",URL="$PassAnalysisSupport_8h.html"];
+  Node7 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="red",URL="$SmallVector_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node9 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node11 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node11 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node19 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/Target/TargetMachine.h",height=0.2,width=0.4,color="black",URL="$Target_2TargetMachine_8h.html"];
+  Node20 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/Support/CodeGen.h",height=0.2,width=0.4,color="black",URL="$CodeGen_8h.html"];
+  Node20 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Target/TargetOptions.h",height=0.2,width=0.4,color="black",URL="$TargetOptions_8h.html"];
+  Node22 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/TargetTransformInfo.h",height=0.2,width=0.4,color="red",URL="$TargetTransformInfo_8h.html"];
+  Node23 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/Target/TargetTransformImpl.h",height=0.2,width=0.4,color="red",URL="$TargetTransformImpl_8h.html"];
+  Node24 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/CodeGen/GCMetadata.h",height=0.2,width=0.4,color="black",URL="$GCMetadata_8h.html"];
+  Node25 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="black",URL="$DenseMap_8h.html"];
+  Node26 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="red",URL="$MathExtras_8h.html"];
+  Node26 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node28 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node29 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="new",height=0.2,width=0.4,color="grey75"];
+  Node26 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node26 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/ADT/StringMap.h",height=0.2,width=0.4,color="black",URL="$StringMap_8h.html"];
+  Node32 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="black",URL="$Allocator_8h.html"];
+  Node33 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node1 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/CodeGen/MachineFunction.h",height=0.2,width=0.4,color="black",URL="$MachineFunction_8h.html"];
+  Node35 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="black",URL="$MachineBasicBlock_8h.html"];
+  Node36 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="red",URL="$MachineInstr_8h.html"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="black",URL="$ilist_8h.html"];
+  Node38 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node36 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node35 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/Support/Recycler.h",height=0.2,width=0.4,color="red",URL="$Recycler_8h.html"];
+  Node41 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/CodeGen/MachineModuleInfo.h",height=0.2,width=0.4,color="black",URL="$MachineModuleInfo_8h.html"];
+  Node42 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/GlobalValue.h",height=0.2,width=0.4,color="red",URL="$GlobalValue_8h.html"];
+  Node42 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/Metadata.h",height=0.2,width=0.4,color="red",URL="$Metadata_8h.html"];
+  Node42 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/MC/MachineLocation.h",height=0.2,width=0.4,color="black",URL="$MachineLocation_8h.html"];
+  Node42 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/MC/MCContext.h",height=0.2,width=0.4,color="red",URL="$MCContext_8h.html"];
+  Node46 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Support/Dwarf.h",height=0.2,width=0.4,color="black",URL="$Dwarf_8h.html"];
+  Node42 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/Support/ValueHandle.h",height=0.2,width=0.4,color="red",URL="$ValueHandle_8h.html"];
+  Node48 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="black",URL="$PointerIntPair_8h.html"];
+  Node49 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/ADT/SmallPtrSet.h",height=0.2,width=0.4,color="black",URL="$SmallPtrSet_8h.html"];
+  Node50 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionAnalysis_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionAnalysis_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionAnalysis_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionAnalysis_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,112 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineFunctionAnalysis.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_f2244d21cf8bec63d11bfc1ad661d96f.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MachineFunctionAnalysis.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="MachineFunctionAnalysis_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- MachineFunctionAnalysis.cpp ---------------------------------------===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file contains the definitions of the MachineFunctionAnalysis members.</span>
+<a name="l00011"></a>00011 <span class="comment">//</span>
+<a name="l00012"></a>00012 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="preprocessor">#include "<a class="code" href="MachineFunctionAnalysis_8h.html">llvm/CodeGen/MachineFunctionAnalysis.h</a>"</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include "<a class="code" href="GCMetadata_8h.html">llvm/CodeGen/GCMetadata.h</a>"</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="MachineFunction_8h.html">llvm/CodeGen/MachineFunction.h</a>"</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="MachineModuleInfo_8h.html">llvm/CodeGen/MachineModuleInfo.h</a>"</span>
+<a name="l00018"></a>00018 <span class="keyword">using namespace </span>llvm;
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 <span class="keywordtype">char</span> <a class="code" href="structllvm_1_1MachineFunctionAnalysis.html#ab359deb6b0b4ded612794a23421b7e0a">MachineFunctionAnalysis::ID</a> = 0;
+<a name="l00021"></a>00021 
+<a name="l00022"></a><a class="code" href="structllvm_1_1MachineFunctionAnalysis.html#a53f9319b07594c2b24a9394d57315bbd">00022</a> <a class="code" href="structllvm_1_1MachineFunctionAnalysis.html#a53f9319b07594c2b24a9394d57315bbd">MachineFunctionAnalysis::MachineFunctionAnalysis</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetMachine.html">TargetMachine</a> &tm) :
+<a name="l00023"></a>00023   <a class="code" href="classllvm_1_1FunctionPass.html">FunctionPass</a>(<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>), TM(tm), MF(0) {
+<a name="l00024"></a>00024   <a class="code" href="namespacellvm.html#aa0a9047f43bbeedb563db32d5476013e">initializeMachineModuleInfoPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00025"></a>00025 }
+<a name="l00026"></a>00026 
+<a name="l00027"></a><a class="code" href="structllvm_1_1MachineFunctionAnalysis.html#ae95f5b39297e6918aad7e25859ca2466">00027</a> <a class="code" href="structllvm_1_1MachineFunctionAnalysis.html#ae95f5b39297e6918aad7e25859ca2466">MachineFunctionAnalysis::~MachineFunctionAnalysis</a>() {
+<a name="l00028"></a>00028   releaseMemory();
+<a name="l00029"></a>00029   assert(!MF && <span class="stringliteral">"MachineFunctionAnalysis left initialized!"</span>);
+<a name="l00030"></a>00030 }
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 <span class="keywordtype">void</span> MachineFunctionAnalysis::getAnalysisUsage(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU)<span class="keyword"> const </span>{
+<a name="l00033"></a>00033   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#af22b06a6a4f9df80454071685a0d6a02">setPreservesAll</a>();
+<a name="l00034"></a>00034   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1MachineModuleInfo.html">MachineModuleInfo</a>>();
+<a name="l00035"></a>00035 }
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="keywordtype">bool</span> MachineFunctionAnalysis::doInitialization(<a class="code" href="classllvm_1_1Module.html" title="The main container class for the LLVM Intermediate Representation.">Module</a> &M) {
+<a name="l00038"></a>00038   <a class="code" href="classllvm_1_1MachineModuleInfo.html">MachineModuleInfo</a> *MMI = getAnalysisIfAvailable<MachineModuleInfo>();
+<a name="l00039"></a>00039   assert(MMI && <span class="stringliteral">"MMI not around yet??"</span>);
+<a name="l00040"></a>00040   MMI-><a class="code" href="classllvm_1_1MachineModuleInfo.html#ad0cc00d2ae9a16ac954b0538f23080eb">setModule</a>(&M);
+<a name="l00041"></a>00041   NextFnNum = 0;
+<a name="l00042"></a>00042   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00043"></a>00043 }
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="keywordtype">bool</span> MachineFunctionAnalysis::runOnFunction(<a class="code" href="classllvm_1_1Function.html">Function</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>) {
+<a name="l00047"></a>00047   assert(!MF && <span class="stringliteral">"MachineFunctionAnalysis already initialized!"</span>);
+<a name="l00048"></a>00048   MF = <span class="keyword">new</span> <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a>(&F, TM, NextFnNum++,
+<a name="l00049"></a>00049                            getAnalysis<MachineModuleInfo>(),
+<a name="l00050"></a>00050                            getAnalysisIfAvailable<GCModuleInfo>());
+<a name="l00051"></a>00051   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00052"></a>00052 }
+<a name="l00053"></a>00053 
+<a name="l00054"></a>00054 <span class="keywordtype">void</span> MachineFunctionAnalysis::releaseMemory() {
+<a name="l00055"></a>00055   <span class="keyword">delete</span> MF;
+<a name="l00056"></a>00056   MF = 0;
+<a name="l00057"></a>00057 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:35:34 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionPass_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionPass_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionPass_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionPass_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,111 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineFunctionPass.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_f2244d21cf8bec63d11bfc1ad661d96f.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MachineFunctionPass.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="MachineFunctionPass_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- MachineFunctionPass.cpp -------------------------------------------===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file contains the definitions of the MachineFunctionPass members.</span>
+<a name="l00011"></a>00011 <span class="comment">//</span>
+<a name="l00012"></a>00012 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="preprocessor">#include "<a class="code" href="Function_8h.html">llvm/Function.h</a>"</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include "<a class="code" href="AliasAnalysis_8h.html">llvm/Analysis/AliasAnalysis.h</a>"</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="MachineFunctionAnalysis_8h.html">llvm/CodeGen/MachineFunctionAnalysis.h</a>"</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="MachineFunctionPass_8h.html">llvm/CodeGen/MachineFunctionPass.h</a>"</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="CodeGen_2Passes_8h.html">llvm/CodeGen/Passes.h</a>"</span>
+<a name="l00019"></a>00019 <span class="keyword">using namespace </span>llvm;
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 <a class="code" href="classllvm_1_1Pass.html">Pass</a> *MachineFunctionPass::createPrinterPass(<a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &O,
+<a name="l00022"></a>00022                                              <span class="keyword">const</span> std::string &Banner)<span class="keyword"> const </span>{
+<a name="l00023"></a>00023   <span class="keywordflow">return</span> <a class="code" href="namespacellvm.html#ae3d9d272cab531d5880a07d047854887">createMachineFunctionPrinterPass</a>(O, Banner);
+<a name="l00024"></a>00024 }
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 <span class="keywordtype">bool</span> MachineFunctionPass::runOnFunction(<a class="code" href="classllvm_1_1Function.html">Function</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>) {
+<a name="l00027"></a>00027   <span class="comment">// Do not codegen any 'available_externally' functions at all, they have</span>
+<a name="l00028"></a>00028   <span class="comment">// definitions outside the translation unit.</span>
+<a name="l00029"></a>00029   <span class="keywordflow">if</span> (F.<a class="code" href="classllvm_1_1GlobalValue.html#af4399141c23e944cc1f75390c3cbd959">hasAvailableExternallyLinkage</a>())
+<a name="l00030"></a>00030     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032   <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF = getAnalysis<MachineFunctionAnalysis>().getMF();
+<a name="l00033"></a>00033   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html#abb98ed32e4e5acae62ef3edd7bf04fb5">runOnMachineFunction</a>(MF);
+<a name="l00034"></a>00034 }
+<a name="l00035"></a>00035 
+<a name="l00036"></a><a class="code" href="classllvm_1_1MachineFunctionPass.html#aa1eece37d175f86a6f4808c0c167f13b">00036</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html#aa1eece37d175f86a6f4808c0c167f13b">MachineFunctionPass::getAnalysisUsage</a>(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU)<span class="keyword"> const </span>{
+<a name="l00037"></a>00037   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="structllvm_1_1MachineFunctionAnalysis.html">MachineFunctionAnalysis</a>>();
+<a name="l00038"></a>00038   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a><<a class="code" href="structllvm_1_1MachineFunctionAnalysis.html">MachineFunctionAnalysis</a>>();
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040   <span class="comment">// MachineFunctionPass preserves all LLVM IR passes, but there's no</span>
+<a name="l00041"></a>00041   <span class="comment">// high-level way to express this. Instead, just list a bunch of</span>
+<a name="l00042"></a>00042   <span class="comment">// passes explicitly. This does not include setPreservesCFG,</span>
+<a name="l00043"></a>00043   <span class="comment">// because CodeGen overloads that to mean preserving the MachineBasicBlock</span>
+<a name="l00044"></a>00044   <span class="comment">// CFG in addition to the LLVM IR CFG.</span>
+<a name="l00045"></a>00045   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a><<a class="code" href="classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>>();
+<a name="l00046"></a>00046   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a>(<span class="stringliteral">"scalar-evolution"</span>);
+<a name="l00047"></a>00047   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a>(<span class="stringliteral">"iv-users"</span>);
+<a name="l00048"></a>00048   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a>(<span class="stringliteral">"memdep"</span>);
+<a name="l00049"></a>00049   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a>(<span class="stringliteral">"live-values"</span>);
+<a name="l00050"></a>00050   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a>(<span class="stringliteral">"domtree"</span>);
+<a name="l00051"></a>00051   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a>(<span class="stringliteral">"domfrontier"</span>);
+<a name="l00052"></a>00052   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a>(<span class="stringliteral">"loops"</span>);
+<a name="l00053"></a>00053   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a>(<span class="stringliteral">"lda"</span>);
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055   <a class="code" href="classllvm_1_1MachineFunctionPass.html#aa1eece37d175f86a6f4808c0c167f13b">FunctionPass::getAnalysisUsage</a>(AU);
+<a name="l00056"></a>00056 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:35:34 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionPass_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionPass_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionPass_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionPass_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineFunctionPass.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_33f9015af551a3c03ac5a968f2023d57.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">MachineFunctionPass.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="Pass_8h_source.html">llvm/Pass.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for MachineFunctionPass.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="MachineFunctionPass_8h__incl.png" border="0" usemap="#MachineFunctionPass_8h" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="MachineFunctionPass_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1MachineFunctionPass.html">llvm::MachineFunctionPass</a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html">llvm</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>List of target independent CodeGen pass IDs. </p>
+<br/></td></tr>
+</table>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:31 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionPrinterPass_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionPrinterPass_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionPrinterPass_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineFunctionPrinterPass_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,173 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineFunctionPrinterPass.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/CodeGen/Passes.h",height=0.2,width=0.4,color="black",URL="$CodeGen_2Passes_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="red",URL="$PassSupport_8h.html"];
+  Node6 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="red",URL="$PassAnalysisSupport_8h.html"];
+  Node7 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node9 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node11 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node12 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node11 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node22 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node22 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/Target/TargetMachine.h",height=0.2,width=0.4,color="black",URL="$Target_2TargetMachine_8h.html"];
+  Node24 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Support/CodeGen.h",height=0.2,width=0.4,color="black",URL="$CodeGen_8h.html"];
+  Node24 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Target/TargetOptions.h",height=0.2,width=0.4,color="black",URL="$TargetOptions_8h.html"];
+  Node26 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/TargetTransformInfo.h",height=0.2,width=0.4,color="red",URL="$TargetTransformInfo_8h.html"];
+  Node27 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/Target/TargetTransformImpl.h",height=0.2,width=0.4,color="red",URL="$TargetTransformImpl_8h.html"];
+  Node28 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/CodeGen/MachineFunctionPass.h",height=0.2,width=0.4,color="black",URL="$MachineFunctionPass_8h.html"];
+  Node29 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/CodeGen/MachineFunction.h",height=0.2,width=0.4,color="black",URL="$MachineFunction_8h.html"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="black",URL="$MachineBasicBlock_8h.html"];
+  Node31 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="red",URL="$MachineInstr_8h.html"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="black",URL="$ilist_8h.html"];
+  Node33 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node34 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node35 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node31 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node31 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node30 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="black",URL="$Allocator_8h.html"];
+  Node39 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="red",URL="$MathExtras_8h.html"];
+  Node39 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/Support/Recycler.h",height=0.2,width=0.4,color="black",URL="$Recycler_8h.html"];
+  Node41 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node42 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/CodeGen/SlotIndexes.h",height=0.2,width=0.4,color="black",URL="$SlotIndexes_8h.html"];
+  Node43 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/CodeGen/MachineInstrBundle.h",height=0.2,width=0.4,color="black",URL="$MachineInstrBundle_8h.html"];
+  Node44 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="black",URL="$PointerIntPair_8h.html"];
+  Node45 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="black",URL="$DenseMap_8h.html"];
+  Node46 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="new",height=0.2,width=0.4,color="grey75"];
+  Node46 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node46 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node49 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/Support/Debug.h",height=0.2,width=0.4,color="black",URL="$Debug_8h.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineFunction_8h__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineFunction_8h__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineFunction_8h__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineFunction_8h__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,31 @@
+<map id="G" name="G">
+<area shape="rect" href="$MachineBasicBlock_8h.html" title="llvm/CodeGen/MachineBasicBlock.h" alt="" coords="613,84,861,111"/>
+<area shape="rect" href="$ilist_8h.html" title="llvm/ADT/ilist.h" alt="" coords="1788,393,1903,420"/>
+<area shape="rect" href="$DebugLoc_8h.html" title="llvm/Support/DebugLoc.h" alt="" coords="1693,239,1875,265"/>
+<area shape="rect" href="$Allocator_8h.html" title="llvm/Support/Allocator.h" alt="" coords="2141,316,2315,343"/>
+<area shape="rect" href="$Recycler_8h.html" title="llvm/Support/Recycler.h" alt="" coords="1899,239,2067,265"/>
+<area shape="rect" href="$MachineInstr_8h.html" title="llvm/CodeGen/MachineInstr.h" alt="" coords="884,161,1089,188"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="840,625,1024,652"/>
+<area shape="rect" href="$GraphTraits_8h.html" title="llvm/ADT/GraphTraits.h" alt="" coords="655,161,820,188"/>
+<area shape="rect" href="$MachineOperand_8h.html" title="llvm/CodeGen/MachineOperand.h" alt="" coords="1303,471,1537,497"/>
+<area shape="rect" href="$MCInstrDesc_8h.html" title="llvm/MC/MCInstrDesc.h" alt="" coords="148,548,316,575"/>
+<area shape="rect" href="$TargetOpcodes_8h.html" title="llvm/Target/TargetOpcodes.h" alt="" coords="1024,239,1224,265"/>
+<area shape="rect" href="$ArrayRef_8h.html" title="llvm/ADT/ArrayRef.h" alt="" coords="1248,239,1392,265"/>
+<area shape="rect" href="$ilist__node_8h.html" title="llvm/ADT/ilist_node.h" alt="" coords="1416,239,1568,265"/>
+<area shape="rect" href="$STLExtras_8h.html" title="llvm/ADT/STLExtras.h" alt="" coords="716,316,871,343"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="749,393,899,420"/>
+<area shape="rect" href="$DenseMapInfo_8h.html" title="llvm/ADT/DenseMapInfo.h" alt="" coords="93,393,277,420"/>
+<area shape="rect" href="$InlineAsm_8h.html" title="llvm/InlineAsm.h" alt="" coords="824,239,949,265"/>
+<area shape="rect" href="$SmallVector_8h.html" title="llvm/ADT/SmallVector.h" alt="" coords="1393,316,1561,343"/>
+<area shape="rect" href="$AlignOf_8h.html" title="llvm/Support/AlignOf.h" alt="" coords="1977,393,2140,420"/>
+<area shape="rect" href="$Compiler_8h.html" title="llvm/Support/Compiler.h" alt="" coords="1713,471,1887,497"/>
+<area shape="rect" href="$type__traits_8h.html" title="llvm/Support/type_traits.h" alt="" coords="380,471,567,497"/>
+<area shape="rect" href="$PointerLikeTypeTraits_8h.html" title="llvm/Support/PointerLikeTypeTraits.h" alt="" coords="808,548,1056,575"/>
+<area shape="rect" href="$Value_8h.html" title="llvm/Value.h" alt="" coords="895,316,993,343"/>
+<area shape="rect" href="$Use_8h.html" title="llvm/Use.h" alt="" coords="1176,393,1264,420"/>
+<area shape="rect" href="$Casting_8h.html" title="llvm/Support/Casting.h" alt="" coords="509,393,675,420"/>
+<area shape="rect" href="$PointerIntPair_8h.html" title="llvm/ADT/PointerIntPair.h" alt="" coords="1103,471,1279,497"/>
+<area shape="rect" href="$MathExtras_8h.html" title="llvm/Support/MathExtras.h" alt="" coords="2328,393,2517,420"/>
+<area shape="rect" href="$SwapByteOrder_8h.html" title="llvm/Support/SwapByteOrder.h" alt="" coords="2321,471,2537,497"/>
+<area shape="rect" href="$ErrorHandling_8h.html" title="llvm/Support/ErrorHandling.h" alt="" coords="1156,316,1361,343"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineInstrBuilder.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_33f9015af551a3c03ac5a968f2023d57.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a> |
+<a href="#enum-members">Enumerations</a> |
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">MachineInstrBuilder.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="MachineFunction_8h_source.html">llvm/CodeGen/MachineFunction.h</a>"</code><br/>
+<code>#include "<a class="el" href="ErrorHandling_8h_source.html">llvm/Support/ErrorHandling.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for MachineInstrBuilder.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="MachineInstrBuilder_8h__incl.png" border="0" usemap="#MachineInstrBuilder_8h" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="MachineInstrBuilder_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1MachineInstrBuilder.html">llvm::MachineInstrBuilder</a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html">llvm</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>List of target independent CodeGen pass IDs. </p>
+<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm_1_1RegState.html">llvm::RegState</a></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <br/>
+  <a class="el" href="namespacellvm_1_1RegState.html#a079b254e749130fbe5d740f314ca92daa72c17e2ff2d5af62a30e56ac152aa8d5">llvm::RegState::Define</a> =  0x2, 
+<a class="el" href="namespacellvm_1_1RegState.html#a079b254e749130fbe5d740f314ca92daa0fec8ba6f4a4dc758b725205985eee99">llvm::RegState::Implicit</a> =  0x4, 
+<a class="el" href="namespacellvm_1_1RegState.html#a079b254e749130fbe5d740f314ca92daa9ddde91ef09476d28a088fe57f8e2921">llvm::RegState::Kill</a> =  0x8, 
+<a class="el" href="namespacellvm_1_1RegState.html#a079b254e749130fbe5d740f314ca92daa2fee1a7db4e84247a193a9af1f907013">llvm::RegState::Dead</a> =  0x10, 
+<br/>
+  <a class="el" href="namespacellvm_1_1RegState.html#a079b254e749130fbe5d740f314ca92daab502f975742e9bff6d6dd7b49439b806">llvm::RegState::Undef</a> =  0x20, 
+<a class="el" href="namespacellvm_1_1RegState.html#a079b254e749130fbe5d740f314ca92daacf55f329675ba5045a4863c7a018209b">llvm::RegState::EarlyClobber</a> =  0x40, 
+<a class="el" href="namespacellvm_1_1RegState.html#a079b254e749130fbe5d740f314ca92daa14af644ca4aff07a3768974c824ac9d5">llvm::RegState::Debug</a> =  0x80, 
+<a class="el" href="namespacellvm_1_1RegState.html#a079b254e749130fbe5d740f314ca92daa7fcf0a8c65265b4519b79fa537bbd8a0">llvm::RegState::InternalRead</a> =  0x100, 
+<br/>
+  <a class="el" href="namespacellvm_1_1RegState.html#a079b254e749130fbe5d740f314ca92daadb3c6bd94c0588ae581c154972651bfd">llvm::RegState::DefineNoRead</a> =  Define | Undef, 
+<a class="el" href="namespacellvm_1_1RegState.html#a079b254e749130fbe5d740f314ca92daa833922eca2ad0eab70573ba1f5fba9af">llvm::RegState::ImplicitDefine</a> =  Implicit | Define, 
+<a class="el" href="namespacellvm_1_1RegState.html#a079b254e749130fbe5d740f314ca92daacff74dc04327bef6824ecb2e3648d0f0">llvm::RegState::ImplicitKill</a> =  Implicit | Kill
+<br/>
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">MachineInstrBuilder </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a980570dc1410d4ef53806f82028ca381">llvm::BuildMI</a> (MachineFunction &MF, DebugLoc DL, const MCInstrDesc &MCID)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">MachineInstrBuilder </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a0a24f7510c5d837b3925c547523af284">llvm::BuildMI</a> (MachineFunction &MF, DebugLoc DL, const MCInstrDesc &MCID, <a class="el" href="classunsigned.html">unsigned</a> DestReg)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">MachineInstrBuilder </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#ade0f3b81094039ce8398b659f8d7f67b">llvm::BuildMI</a> (MachineBasicBlock &BB, MachineBasicBlock::iterator I, DebugLoc DL, const MCInstrDesc &MCID, <a class="el" href="classunsigned.html">unsigned</a> DestReg)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">MachineInstrBuilder </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#aa1f4baff4f7ab57cf23c82db2ea0aedc">llvm::BuildMI</a> (MachineBasicBlock &BB, MachineBasicBlock::instr_iterator I, DebugLoc DL, const MCInstrDesc &MCID, <a class="el" href="classunsigned.html">unsigned</a> DestReg)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">MachineInstrBuilder </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a903a2842382f2b2c2d8e6a03a537e385">llvm::BuildMI</a> (MachineBasicBlock &BB, MachineInstr *I, DebugLoc DL, const MCInstrDesc &MCID, <a class="el" href="classunsigned.html">unsigned</a> DestReg)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">MachineInstrBuilder </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#aec2794638e8f0c5a2e19f19656d5d865">llvm::BuildMI</a> (MachineBasicBlock &BB, MachineBasicBlock::iterator I, DebugLoc DL, const MCInstrDesc &MCID)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">MachineInstrBuilder </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#aa842307c857de2782ad8a7a97e773980">llvm::BuildMI</a> (MachineBasicBlock &BB, MachineBasicBlock::instr_iterator I, DebugLoc DL, const MCInstrDesc &MCID)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">MachineInstrBuilder </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a1bad2bc6b8b73ef40c0c17b435aece93">llvm::BuildMI</a> (MachineBasicBlock &BB, MachineInstr *I, DebugLoc DL, const MCInstrDesc &MCID)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">MachineInstrBuilder </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#ae341265406e580318aa31b6760ebf614">llvm::BuildMI</a> (MachineBasicBlock *BB, DebugLoc DL, const MCInstrDesc &MCID)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">MachineInstrBuilder </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a18cd6b0c3ac2ab2a4659394343cb6f11">llvm::BuildMI</a> (MachineBasicBlock *BB, DebugLoc DL, const MCInstrDesc &MCID, <a class="el" href="classunsigned.html">unsigned</a> DestReg)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classunsigned.html">unsigned</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#aa5e4d7acf58e87826a15b94d37144f2b">llvm::getDefRegState</a> (<a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> B)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classunsigned.html">unsigned</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a664166c0f38130d62cc5de72934946ae">llvm::getImplRegState</a> (<a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> B)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classunsigned.html">unsigned</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#aac57d4100e9a9d02522fbd724568397d">llvm::getKillRegState</a> (<a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> B)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classunsigned.html">unsigned</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a3dd7c56278c84a39f699241bdaade2ee">llvm::getDeadRegState</a> (<a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> B)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classunsigned.html">unsigned</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#aa3a1f79eb5e89f41ad5a3d8e9b2a367a">llvm::getUndefRegState</a> (<a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> B)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classunsigned.html">unsigned</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a814afdaff8cc41f929c618b9e09c4628">llvm::getInternalReadRegState</a> (<a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> B)</td></tr>
+</table>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:31 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,32 @@
+<map id="G" name="G">
+<area shape="rect" href="$MachineFunction_8h.html" title="llvm/CodeGen/MachineFunction.h" alt="" coords="905,84,1137,111"/>
+<area shape="rect" href="$ErrorHandling_8h.html" title="llvm/Support/ErrorHandling.h" alt="" coords="675,393,880,420"/>
+<area shape="rect" href="$MachineBasicBlock_8h.html" title="llvm/CodeGen/MachineBasicBlock.h" alt="" coords="2220,161,2468,188"/>
+<area shape="rect" href="$ilist_8h.html" title="llvm/ADT/ilist.h" alt="" coords="977,471,1092,497"/>
+<area shape="rect" href="$DebugLoc_8h.html" title="llvm/Support/DebugLoc.h" alt="" coords="2621,316,2803,343"/>
+<area shape="rect" href="$Allocator_8h.html" title="llvm/Support/Allocator.h" alt="" coords="265,393,439,420"/>
+<area shape="rect" href="$Recycler_8h.html" title="llvm/Support/Recycler.h" alt="" coords="663,316,831,343"/>
+<area shape="rect" href="$MachineInstr_8h.html" title="llvm/CodeGen/MachineInstr.h" alt="" coords="1803,239,2008,265"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="2079,703,2263,729"/>
+<area shape="rect" href="$GraphTraits_8h.html" title="llvm/ADT/GraphTraits.h" alt="" coords="2381,239,2547,265"/>
+<area shape="rect" href="$MachineOperand_8h.html" title="llvm/CodeGen/MachineOperand.h" alt="" coords="2215,548,2449,575"/>
+<area shape="rect" href="$MCInstrDesc_8h.html" title="llvm/MC/MCInstrDesc.h" alt="" coords="2376,625,2544,652"/>
+<area shape="rect" href="$TargetOpcodes_8h.html" title="llvm/Target/TargetOpcodes.h" alt="" coords="1605,316,1805,343"/>
+<area shape="rect" href="$ArrayRef_8h.html" title="llvm/ADT/ArrayRef.h" alt="" coords="1288,316,1432,343"/>
+<area shape="rect" href="$ilist__node_8h.html" title="llvm/ADT/ilist_node.h" alt="" coords="1829,316,1981,343"/>
+<area shape="rect" href="$STLExtras_8h.html" title="llvm/ADT/STLExtras.h" alt="" coords="1828,393,1983,420"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="703,471,852,497"/>
+<area shape="rect" href="$DenseMapInfo_8h.html" title="llvm/ADT/DenseMapInfo.h" alt="" coords="2108,471,2292,497"/>
+<area shape="rect" href="$InlineAsm_8h.html" title="llvm/InlineAsm.h" alt="" coords="1456,316,1581,343"/>
+<area shape="rect" href="$SmallVector_8h.html" title="llvm/ADT/SmallVector.h" alt="" coords="1296,393,1464,420"/>
+<area shape="rect" href="$AlignOf_8h.html" title="llvm/Support/AlignOf.h" alt="" coords="415,471,577,497"/>
+<area shape="rect" href="$Compiler_8h.html" title="llvm/Support/Compiler.h" alt="" coords="1212,548,1385,575"/>
+<area shape="rect" href="$type__traits_8h.html" title="llvm/Support/type_traits.h" alt="" coords="1852,548,2039,575"/>
+<area shape="rect" href="$PointerLikeTypeTraits_8h.html" title="llvm/Support/PointerLikeTypeTraits.h" alt="" coords="2047,625,2295,652"/>
+<area shape="rect" href="$Value_8h.html" title="llvm/Value.h" alt="" coords="1548,393,1647,420"/>
+<area shape="rect" href="$Use_8h.html" title="llvm/Use.h" alt="" coords="1655,471,1743,497"/>
+<area shape="rect" href="$Casting_8h.html" title="llvm/Support/Casting.h" alt="" coords="1868,471,2033,497"/>
+<area shape="rect" href="$PointerIntPair_8h.html" title="llvm/ADT/PointerIntPair.h" alt="" coords="1652,548,1828,575"/>
+<area shape="rect" href="$MathExtras_8h.html" title="llvm/Support/MathExtras.h" alt="" coords="49,471,239,497"/>
+<area shape="rect" href="$SwapByteOrder_8h.html" title="llvm/Support/SwapByteOrder.h" alt="" coords="43,548,259,575"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+17219406ff4c4da832961689b44fc4f5
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBuilder_8h__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBundle_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBundle_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBundle_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineInstrBundle_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,125 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineInstrBundle.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="SlotIndexes.h",height=0.2,width=0.4,color="black",URL="$SlotIndexes_8h.html"];
+  Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="CalcSpillWeights.h",height=0.2,width=0.4,color="red",URL="$CalcSpillWeights_8h.html"];
+  Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="CalcSpillWeights.cpp",height=0.2,width=0.4,color="black",URL="$CalcSpillWeights_8cpp.html"];
+  Node3 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="LiveRangeEdit.cpp",height=0.2,width=0.4,color="black",URL="$LiveRangeEdit_8cpp.html"];
+  Node2 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="LiveInterval.h",height=0.2,width=0.4,color="red",URL="$LiveInterval_8h.html"];
+  Node6 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="LiveIntervalAnalysis.h",height=0.2,width=0.4,color="red",URL="$LiveIntervalAnalysis_8h.html"];
+  Node7 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="InlineSpiller.cpp",height=0.2,width=0.4,color="black",URL="$InlineSpiller_8cpp.html"];
+  Node7 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="LiveDebugVariables.cpp",height=0.2,width=0.4,color="black",URL="$LiveDebugVariables_8cpp.html"];
+  Node7 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="LiveInterval.cpp",height=0.2,width=0.4,color="black",URL="$LiveInterval_8cpp.html"];
+  Node7 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="LiveIntervalAnalysis.cpp",height=0.2,width=0.4,color="black",URL="$LiveIntervalAnalysis_8cpp.html"];
+  Node7 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="LiveRegMatrix.cpp",height=0.2,width=0.4,color="black",URL="$LiveRegMatrix_8cpp.html"];
+  Node7 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="MachineVerifier.cpp",height=0.2,width=0.4,color="black",URL="$MachineVerifier_8cpp.html"];
+  Node6 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="StackColoring.cpp",height=0.2,width=0.4,color="black",URL="$StackColoring_8cpp.html"];
+  Node2 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="MachineLoopRanges.h",height=0.2,width=0.4,color="red",URL="$MachineLoopRanges_8h.html"];
+  Node2 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="RegisterPressure.h",height=0.2,width=0.4,color="red",URL="$RegisterPressure_8h.html"];
+  Node2 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="MachineBasicBlock.cpp",height=0.2,width=0.4,color="black",URL="$MachineBasicBlock_8cpp.html"];
+  Node2 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="MachineFunctionPrinterPass.cpp",height=0.2,width=0.4,color="black",URL="$MachineFunctionPrinterPass_8cpp.html"];
+  Node2 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="SlotIndexes.cpp",height=0.2,width=0.4,color="black",URL="$SlotIndexes_8cpp.html"];
+  Node2 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="MachineRegisterInfo.h",height=0.2,width=0.4,color="red",URL="$MachineRegisterInfo_8h.html"];
+  Node20 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="RegisterScavenging.h",height=0.2,width=0.4,color="red",URL="$RegisterScavenging_8h.html"];
+  Node21 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="BranchFolding.cpp",height=0.2,width=0.4,color="black",URL="$BranchFolding_8cpp.html"];
+  Node20 -> Node23 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="AntiDepBreaker.h",height=0.2,width=0.4,color="red",URL="$AntiDepBreaker_8h.html"];
+  Node23 -> Node24 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="AggressiveAntiDepBreaker.h",height=0.2,width=0.4,color="red",URL="$AggressiveAntiDepBreaker_8h.html"];
+  Node23 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="CriticalAntiDepBreaker.h",height=0.2,width=0.4,color="red",URL="$CriticalAntiDepBreaker_8h.html"];
+  Node20 -> Node24 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="AllocationOrder.cpp",height=0.2,width=0.4,color="black",URL="$AllocationOrder_8cpp.html"];
+  Node20 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node27 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="DeadMachineInstructionElim.cpp",height=0.2,width=0.4,color="black",URL="$DeadMachineInstructionElim_8cpp.html"];
+  Node20 -> Node28 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="EarlyIfConversion.cpp",height=0.2,width=0.4,color="black",URL="$EarlyIfConversion_8cpp.html"];
+  Node20 -> Node29 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="ExecutionDepsFix.cpp",height=0.2,width=0.4,color="black",URL="$ExecutionDepsFix_8cpp.html"];
+  Node20 -> Node30 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="ExpandPostRAPseudos.cpp",height=0.2,width=0.4,color="black",URL="$ExpandPostRAPseudos_8cpp.html"];
+  Node20 -> Node31 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="IfConversion.cpp",height=0.2,width=0.4,color="black",URL="$IfConversion_8cpp.html"];
+  Node20 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node32 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="LiveRangeCalc.cpp",height=0.2,width=0.4,color="black",URL="$LiveRangeCalc_8cpp.html"];
+  Node20 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node33 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="LiveVariables.cpp",height=0.2,width=0.4,color="black",URL="$LiveVariables_8cpp.html"];
+  Node20 -> Node34 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="LocalStackSlotAllocation.cpp",height=0.2,width=0.4,color="black",URL="$LocalStackSlotAllocation_8cpp.html"];
+  Node20 -> Node35 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="MachineCopyPropagation.cpp",height=0.2,width=0.4,color="black",URL="$MachineCopyPropagation_8cpp.html"];
+  Node20 -> Node36 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="MachineCSE.cpp",height=0.2,width=0.4,color="black",URL="$MachineCSE_8cpp.html"];
+  Node20 -> Node37 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="MachineFunction.cpp",height=0.2,width=0.4,color="black",URL="$MachineFunction_8cpp.html"];
+  Node20 -> Node38 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="MachineInstr.cpp",height=0.2,width=0.4,color="black",URL="$MachineInstr_8cpp.html"];
+  Node20 -> Node39 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="MachineLICM.cpp",height=0.2,width=0.4,color="black",URL="$MachineLICM_8cpp.html"];
+  Node20 -> Node40 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="MachineRegisterInfo.cpp",height=0.2,width=0.4,color="black",URL="$MachineRegisterInfo_8cpp.html"];
+  Node20 -> Node41 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="MachineSink.cpp",height=0.2,width=0.4,color="black",URL="$MachineSink_8cpp.html"];
+  Node20 -> Node42 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="MachineSSAUpdater.cpp",height=0.2,width=0.4,color="black",URL="$MachineSSAUpdater_8cpp.html"];
+  Node20 -> Node43 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="MachineTraceMetrics.cpp",height=0.2,width=0.4,color="black",URL="$MachineTraceMetrics_8cpp.html"];
+  Node20 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node44 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="OptimizePHIs.cpp",height=0.2,width=0.4,color="black",URL="$OptimizePHIs_8cpp.html"];
+  Node20 -> Node45 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="PeepholeOptimizer.cpp",height=0.2,width=0.4,color="black",URL="$PeepholeOptimizer_8cpp.html"];
+  Node20 -> Node46 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="PHIElimination.cpp",height=0.2,width=0.4,color="black",URL="$PHIElimination_8cpp.html"];
+  Node20 -> Node47 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="PHIEliminationUtils.cpp",height=0.2,width=0.4,color="black",URL="$PHIEliminationUtils_8cpp.html"];
+  Node20 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node48 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="DFAPacketizer.cpp",height=0.2,width=0.4,color="black",URL="$DFAPacketizer_8cpp.html"];
+  Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node49 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="MachineInstrBundle.cpp",height=0.2,width=0.4,color="black",URL="$MachineInstrBundle_8cpp.html"];
+  Node1 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="Thumb2ITBlockPass.cpp",height=0.2,width=0.4,color="black",URL="$Thumb2ITBlockPass_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineInstr_8cpp__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineInstr_8cpp__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineInstr_8cpp__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineInstr_8cpp__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,50 @@
+<map id="G" name="G">
+<area shape="rect" href="$MachineInstr_8h.html" title="llvm/CodeGen/MachineInstr.h" alt="" coords="1853,161,2059,188"/>
+<area shape="rect" href="$MCInstrDesc_8h.html" title="llvm/MC/MCInstrDesc.h" alt="" coords="1115,239,1283,265"/>
+<area shape="rect" href="$InlineAsm_8h.html" title="llvm/InlineAsm.h" alt="" coords="3235,239,3360,265"/>
+<area shape="rect" href="$Value_8h.html" title="llvm/Value.h" alt="" coords="3627,316,3725,343"/>
+<area shape="rect" href="$Constants_8h.html" title="llvm/Constants.h" alt="" coords="485,84,613,111"/>
+<area shape="rect" href="$MathExtras_8h.html" title="llvm/Support/MathExtras.h" alt="" coords="348,316,537,343"/>
+<area shape="rect" href="$DebugInfo_8h.html" title="llvm/DebugInfo.h" alt="" coords="2955,84,3083,111"/>
+<area shape="rect" href="$Function_8h.html" title="llvm/Function.h" alt="" coords="984,161,1099,188"/>
+<area shape="rect" href="$LLVMContext_8h.html" title="llvm/LLVMContext.h" alt="" coords="3512,84,3659,111"/>
+<area shape="rect" href="$Metadata_8h.html" title="llvm/Metadata.h" alt="" coords="2440,161,2563,188"/>
+<area shape="rect" href="$FoldingSet_8h.html" title="llvm/ADT/FoldingSet.h" alt="" coords="3000,239,3160,265"/>
+<area shape="rect" href="$Module_8h.html" title="llvm/Module.h" alt="" coords="1277,84,1387,111"/>
+<area shape="rect" href="$Type_8h.html" title="llvm/Type.h" alt="" coords="3683,84,3773,111"/>
+<area shape="rect" href="$Writer_8h.html" title="llvm/Assembly/Writer.h" alt="" coords="3797,84,3960,111"/>
+<area shape="rect" href="$MachineConstantPool_8h.html" title="llvm/CodeGen/MachineConstantPool.h" alt="" coords="5,316,269,343"/>
+<area shape="rect" href="$MachineFunction_8h.html" title="llvm/CodeGen/MachineFunction.h" alt="" coords="2133,161,2365,188"/>
+<area shape="rect" href="$MachineMemOperand_8h.html" title="llvm/CodeGen/MachineMemOperand.h" alt="" coords="3984,84,4251,111"/>
+<area shape="rect" href="$MachineModuleInfo_8h.html" title="llvm/CodeGen/MachineModuleInfo.h" alt="" coords="2539,84,2787,111"/>
+<area shape="rect" href="$MachineRegisterInfo_8h.html" title="llvm/CodeGen/MachineRegisterInfo.h" alt="" coords="724,84,977,111"/>
+<area shape="rect" href="$TargetRegisterInfo_8h.html" title="llvm/Target/TargetRegisterInfo.h" alt="" coords="741,161,960,188"/>
+<area shape="rect" href="$PseudoSourceValue_8h.html" title="llvm/CodeGen/PseudoSourceValue.h" alt="" coords="3939,161,4192,188"/>
+<area shape="rect" href="$MCSymbol_8h.html" title="llvm/MC/MCSymbol.h" alt="" coords="3709,161,3864,188"/>
+<area shape="rect" href="$Target_2TargetMachine_8h.html" title="llvm/Target/TargetMachine.h" alt="" coords="3208,161,3405,188"/>
+<area shape="rect" href="$TargetInstrInfo_8h.html" title="llvm/Target/TargetInstrInfo.h" alt="" coords="2209,84,2404,111"/>
+<area shape="rect" href="$AliasAnalysis_8h.html" title="llvm/Analysis/AliasAnalysis.h" alt="" coords="4275,84,4475,111"/>
+<area shape="rect" href="$Debug_8h.html" title="llvm/Support/Debug.h" alt="" coords="4499,84,4659,111"/>
+<area shape="rect" href="$ErrorHandling_8h.html" title="llvm/Support/ErrorHandling.h" alt="" coords="3429,161,3635,188"/>
+<area shape="rect" href="$LeakDetector_8h.html" title="llvm/Support/LeakDetector.h" alt="" coords="4683,84,4885,111"/>
+<area shape="rect" href="$raw__ostream_8h.html" title="llvm/Support/raw_ostream.h" alt="" coords="3543,239,3743,265"/>
+<area shape="rect" href="$Hashing_8h.html" title="llvm/ADT/Hashing.h" alt="" coords="2028,84,2172,111"/>
+<area shape="rect" href="$MachineOperand_8h.html" title="llvm/CodeGen/MachineOperand.h" alt="" coords="1840,239,2075,265"/>
+<area shape="rect" href="$TargetOpcodes_8h.html" title="llvm/Target/TargetOpcodes.h" alt="" coords="1565,239,1765,265"/>
+<area shape="rect" href="$ArrayRef_8h.html" title="llvm/ADT/ArrayRef.h" alt="" coords="896,316,1040,343"/>
+<area shape="rect" href="$ilist_8h.html" title="llvm/ADT/ilist.h" alt="" coords="2328,239,2443,265"/>
+<area shape="rect" href="$ilist__node_8h.html" title="llvm/ADT/ilist_node.h" alt="" coords="2672,239,2824,265"/>
+<area shape="rect" href="$STLExtras_8h.html" title="llvm/ADT/STLExtras.h" alt="" coords="2149,239,2304,265"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="3272,316,3421,343"/>
+<area shape="rect" href="$DenseMapInfo_8h.html" title="llvm/ADT/DenseMapInfo.h" alt="" coords="1357,239,1541,265"/>
+<area shape="rect" href="$DebugLoc_8h.html" title="llvm/Support/DebugLoc.h" alt="" coords="2467,239,2648,265"/>
+<area shape="rect" href="$SmallVector_8h.html" title="llvm/ADT/SmallVector.h" alt="" coords="2853,393,3021,420"/>
+<area shape="rect" href="$Constant_8h.html" title="llvm/Constant.h" alt="" coords="696,316,816,343"/>
+<area shape="rect" href="$OperandTraits_8h.html" title="llvm/OperandTraits.h" alt="" coords="197,161,349,188"/>
+<area shape="rect" href="$APInt_8h.html" title="llvm/ADT/APInt.h" alt="" coords="436,239,561,265"/>
+<area shape="rect" href="$APFloat_8h.html" title="llvm/ADT/APFloat.h" alt="" coords="424,161,565,188"/>
+<area shape="rect" href="$SmallPtrSet_8h.html" title="llvm/ADT/SmallPtrSet.h" alt="" coords="2637,161,2805,188"/>
+<area shape="rect" href="$Dwarf_8h.html" title="llvm/Support/Dwarf.h" alt="" coords="2829,161,2981,188"/>
+<area shape="rect" href="$GlobalValue_8h.html" title="llvm/GlobalValue.h" alt="" coords="901,239,1040,265"/>
+<area shape="rect" href="$CallingConv_8h.html" title="llvm/CallingConv.h" alt="" coords="741,239,877,265"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineInstr_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineInstr_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineInstr_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineInstr_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+3351c2823a9d6c360bb6e06725f40426
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineJumpTableInfo_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineJumpTableInfo_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineJumpTableInfo_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineJumpTableInfo_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,94 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineJumpTableInfo.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="AsmPrinter.cpp",height=0.2,width=0.4,color="black",URL="$AsmPrinter_8cpp.html"];
+  Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="BranchFolding.cpp",height=0.2,width=0.4,color="black",URL="$BranchFolding_8cpp.html"];
+  Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="MachineFunction.cpp",height=0.2,width=0.4,color="black",URL="$MachineFunction_8cpp.html"];
+  Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="LegalizeDAG.cpp",height=0.2,width=0.4,color="black",URL="$LegalizeDAG_8cpp.html"];
+  Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="SelectionDAGBuilder.cpp",height=0.2,width=0.4,color="black",URL="$SelectionDAGBuilder_8cpp.html"];
+  Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="TargetLowering.cpp",height=0.2,width=0.4,color="black",URL="$TargetLowering_8cpp.html"];
+  Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="JITEmitter.cpp",height=0.2,width=0.4,color="black",URL="$JITEmitter_8cpp.html"];
+  Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="ARMJITInfo.h",height=0.2,width=0.4,color="black",URL="$ARMJITInfo_8h.html"];
+  Node9 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="ARMTargetMachine.h",height=0.2,width=0.4,color="black",URL="$ARMTargetMachine_8h.html"];
+  Node10 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="ARMAsmPrinter.h",height=0.2,width=0.4,color="black",URL="$ARMAsmPrinter_8h.html"];
+  Node11 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="ARMAsmPrinter.cpp",height=0.2,width=0.4,color="black",URL="$ARMAsmPrinter_8cpp.html"];
+  Node11 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="ARMMCInstLower.cpp",height=0.2,width=0.4,color="black",URL="$ARMMCInstLower_8cpp.html"];
+  Node10 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="ARMCodeEmitter.cpp",height=0.2,width=0.4,color="black",URL="$ARMCodeEmitter_8cpp.html"];
+  Node10 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="ARMFastISel.cpp",height=0.2,width=0.4,color="black",URL="$ARMFastISel_8cpp.html"];
+  Node10 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="ARMInstrInfo.cpp",height=0.2,width=0.4,color="black",URL="$ARMInstrInfo_8cpp.html"];
+  Node10 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="ARMISelDAGToDAG.cpp",height=0.2,width=0.4,color="black",URL="$ARMISelDAGToDAG_8cpp.html"];
+  Node10 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="ARMISelLowering.cpp",height=0.2,width=0.4,color="black",URL="$ARMISelLowering_8cpp.html"];
+  Node10 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="ARMSelectionDAGInfo.cpp",height=0.2,width=0.4,color="black",URL="$ARMSelectionDAGInfo_8cpp.html"];
+  Node10 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="ARMTargetMachine.cpp",height=0.2,width=0.4,color="black",URL="$ARMTargetMachine_8cpp.html"];
+  Node9 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="ARMJITInfo.cpp",height=0.2,width=0.4,color="black",URL="$ARMJITInfo_8cpp.html"];
+  Node1 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="ARMBaseInstrInfo.cpp",height=0.2,width=0.4,color="black",URL="$ARMBaseInstrInfo_8cpp.html"];
+  Node1 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node23 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="ARMConstantIslandPass.cpp",height=0.2,width=0.4,color="black",URL="$ARMConstantIslandPass_8cpp.html"];
+  Node1 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node24 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="HexagonISelLowering.cpp",height=0.2,width=0.4,color="black",URL="$HexagonISelLowering_8cpp.html"];
+  Node1 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="MipsJITInfo.h",height=0.2,width=0.4,color="black",URL="$MipsJITInfo_8h.html"];
+  Node25 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="MipsTargetMachine.h",height=0.2,width=0.4,color="black",URL="$MipsTargetMachine_8h.html"];
+  Node26 -> Node27 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="Mips16InstrInfo.cpp",height=0.2,width=0.4,color="black",URL="$Mips16InstrInfo_8cpp.html"];
+  Node26 -> Node28 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="MipsCodeEmitter.cpp",height=0.2,width=0.4,color="black",URL="$MipsCodeEmitter_8cpp.html"];
+  Node26 -> Node29 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="MipsDelaySlotFiller.cpp",height=0.2,width=0.4,color="black",URL="$MipsDelaySlotFiller_8cpp.html"];
+  Node26 -> Node30 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="MipsFrameLowering.cpp",height=0.2,width=0.4,color="black",URL="$MipsFrameLowering_8cpp.html"];
+  Node26 -> Node31 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="MipsInstrInfo.cpp",height=0.2,width=0.4,color="black",URL="$MipsInstrInfo_8cpp.html"];
+  Node26 -> Node32 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="MipsISelDAGToDAG.cpp",height=0.2,width=0.4,color="black",URL="$MipsISelDAGToDAG_8cpp.html"];
+  Node26 -> Node33 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="MipsISelLowering.cpp",height=0.2,width=0.4,color="black",URL="$MipsISelLowering_8cpp.html"];
+  Node26 -> Node34 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="MipsLongBranch.cpp",height=0.2,width=0.4,color="black",URL="$MipsLongBranch_8cpp.html"];
+  Node26 -> Node35 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="MipsSEInstrInfo.cpp",height=0.2,width=0.4,color="black",URL="$MipsSEInstrInfo_8cpp.html"];
+  Node26 -> Node36 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="MipsSelectionDAGInfo.cpp",height=0.2,width=0.4,color="black",URL="$MipsSelectionDAGInfo_8cpp.html"];
+  Node26 -> Node37 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="MipsTargetMachine.cpp",height=0.2,width=0.4,color="black",URL="$MipsTargetMachine_8cpp.html"];
+  Node25 -> Node38 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="MipsJITInfo.cpp",height=0.2,width=0.4,color="black",URL="$MipsJITInfo_8cpp.html"];
+  Node1 -> Node28 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node39 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="X86AsmPrinter.cpp",height=0.2,width=0.4,color="black",URL="$X86AsmPrinter_8cpp.html"];
+  Node1 -> Node40 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="X86ISelLowering.cpp",height=0.2,width=0.4,color="black",URL="$X86ISelLowering_8cpp.html"];
+  Node1 -> Node41 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="XCoreAsmPrinter.cpp",height=0.2,width=0.4,color="black",URL="$XCoreAsmPrinter_8cpp.html"];
+  Node1 -> Node42 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="XCoreISelLowering.cpp",height=0.2,width=0.4,color="black",URL="$XCoreISelLowering_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineJumpTableInfo_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineJumpTableInfo_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineJumpTableInfo_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineJumpTableInfo_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,11 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineJumpTableInfo.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="cassert",height=0.2,width=0.4,color="grey75"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineLICM_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineLICM_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineLICM_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineLICM_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,472 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineLICM.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_f2244d21cf8bec63d11bfc1ad661d96f.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Defines</a> |
+<a href="#func-members">Functions</a> |
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">MachineLICM.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="CodeGen_2Passes_8h_source.html">llvm/CodeGen/Passes.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineDominators_8h_source.html">llvm/CodeGen/MachineDominators.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineFrameInfo_8h_source.html">llvm/CodeGen/MachineFrameInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineLoopInfo_8h_source.html">llvm/CodeGen/MachineLoopInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineMemOperand_8h_source.html">llvm/CodeGen/MachineMemOperand.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineRegisterInfo_8h_source.html">llvm/CodeGen/MachineRegisterInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="PseudoSourceValue_8h_source.html">llvm/CodeGen/PseudoSourceValue.h</a>"</code><br/>
+<code>#include "<a class="el" href="MCInstrItineraries_8h_source.html">llvm/MC/MCInstrItineraries.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetLowering_8h_source.html">llvm/Target/TargetLowering.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetRegisterInfo_8h_source.html">llvm/Target/TargetRegisterInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetInstrInfo_8h_source.html">llvm/Target/TargetInstrInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="Target_2TargetMachine_8h_source.html">llvm/Target/TargetMachine.h</a>"</code><br/>
+<code>#include "<a class="el" href="AliasAnalysis_8h_source.html">llvm/Analysis/AliasAnalysis.h</a>"</code><br/>
+<code>#include "<a class="el" href="DenseMap_8h_source.html">llvm/ADT/DenseMap.h</a>"</code><br/>
+<code>#include "<a class="el" href="SmallSet_8h_source.html">llvm/ADT/SmallSet.h</a>"</code><br/>
+<code>#include "<a class="el" href="Statistic_8h_source.html">llvm/ADT/Statistic.h</a>"</code><br/>
+<code>#include "<a class="el" href="CommandLine_8h_source.html">llvm/Support/CommandLine.h</a>"</code><br/>
+<code>#include "<a class="el" href="Debug_8h_source.html">llvm/Support/Debug.h</a>"</code><br/>
+<code>#include "<a class="el" href="raw__ostream_8h_source.html">llvm/Support/raw_ostream.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for MachineLICM.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="MachineLICM_8cpp__incl.png" border="0" usemap="#MachineLICM_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="MachineLICM_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">DEBUG_TYPE</a>   "machine-licm"</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#a5f440ca7f5a9bc1a0e43538f8b49e5ec">STATISTIC</a> (NumHoisted,"Number of machine <a class="el" href="SimplifyInstructions_8cpp.html#afbf38da490ab8cea559fee0c9081db06">instructions</a> hoisted <a class="el" href="ProfileDataLoaderPass_8cpp.html#adee94aee897e283127f9fe996a84c6ef">out</a> of <a class="el" href="LoopSimplify_8cpp.html#ac68567aa12ef395f71061eff8f6dd7df">loops</a>")</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#a19c89c2c59c4b430af03aa53ce5735fd">STATISTIC</a> (NumLowRP,"Number of <a class="el" href="SimplifyInstructions_8cpp.html#afbf38da490ab8cea559fee0c9081db06">instructions</a> hoisted in low reg pressure situation")</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#af7aedbe8819bd0992c8fa627e8765c91">STATISTIC</a> (NumHighLatency,"Number of high latency <a class="el" href="SimplifyInstructions_8cpp.html#afbf38da490ab8cea559fee0c9081db06">instructions</a> hoisted")</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#ab9a84997f0657e0558d11b39a5450be7">STATISTIC</a> (NumCSEed,"Number of hoisted machine <a class="el" href="SimplifyInstructions_8cpp.html#afbf38da490ab8cea559fee0c9081db06">instructions</a> CSEed")</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#ad2f3e83a3c6b9b08f9063ced04ed1241">STATISTIC</a> (NumPostRAHoisted,"Number of machine <a class="el" href="SimplifyInstructions_8cpp.html#afbf38da490ab8cea559fee0c9081db06">instructions</a> hoisted <a class="el" href="ProfileDataLoaderPass_8cpp.html#adee94aee897e283127f9fe996a84c6ef">out</a> of <a class="el" href="LoopSimplify_8cpp.html#ac68567aa12ef395f71061eff8f6dd7df">loops</a> post regalloc")</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#a5e88a1c76fcf428da5bdda0bc7ccb938">INITIALIZE_PASS_BEGIN</a> (MachineLICM,"machinelicm","Machine <a class="el" href="classllvm_1_1Loop.html">Loop</a> Invariant Code <a class="el" href="MachineLICM_8cpp.html#adb278d56cfd897fb0c3eea6508fed1c4">Motion</a>", false, <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a>) INITIALIZE_PASS_END(MachineLICM</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">Machine <a class="el" href="classllvm_1_1Loop.html">Loop</a> Invariant Code <br class="typebreak"/>
+static <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a> <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#abbbf9ad51415e03f77597a5dedce3f99">LoopIsOuterMostWithPredecessor</a> (<a class="el" href="classllvm_1_1MachineLoop.html">MachineLoop</a> *CurLoop)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#ab291fb9293f91eda708874e0e75e815e">InstructionStoresToFI</a> (const <a class="el" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI, int FI)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#a3b6f8318fa97ea96ea30725e31e85fea">isOperandKill</a> (const <a class="el" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO, <a class="el" href="classllvm_1_1MachineRegisterInfo.html">MachineRegisterInfo</a> *MRI)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#a27155066ff11c6a72e3dd16c774d4655">isLoadFromGOTOrConstantPool</a> (<a class="el" href="classllvm_1_1MachineInstr.html">MachineInstr</a> &MI)</td></tr>
+<tr><td colspan="2"><h2><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classllvm_1_1cl_1_1opt.html">cl::opt</a>< <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#a330f2a9738da6c37a754f204519c6351">AvoidSpeculation</a> ("avoid-speculation", cl::desc("MachineLICM should avoid speculation"), cl::init(<a class="el" href="LoopSimplify_8cpp.html#a13f020c6a40eb04f1b4f9ddfbb004ce0">true</a>), cl::Hidden)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#a67fba080ac198ef02581a992c85d532a">machinelicm</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">Machine <a class="el" href="classllvm_1_1Loop.html">Loop</a> Invariant Code </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#adb278d56cfd897fb0c3eea6508fed1c4">Motion</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">Machine <a class="el" href="classllvm_1_1Loop.html">Loop</a> Invariant Code </td><td class="memItemRight" valign="bottom"><a class="el" href="MachineLICM_8cpp.html#a5cc870b0e088cf758aea11748ef4fce5">false</a></td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ad78e062f62e0d6e453941fb4ca843e4d"></a><!-- doxytag: member="MachineLICM.cpp::DEBUG_TYPE" ref="ad78e062f62e0d6e453941fb4ca843e4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DEBUG_TYPE   "machine-licm"</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MachineLICM_8cpp_source.html#l00023">23</a> of file <a class="el" href="MachineLICM_8cpp_source.html">MachineLICM.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a5e88a1c76fcf428da5bdda0bc7ccb938"></a><!-- doxytag: member="MachineLICM.cpp::INITIALIZE_PASS_BEGIN" ref="a5e88a1c76fcf428da5bdda0bc7ccb938" args="(MachineLICM,"machinelicm","Machine Loop Invariant Code Motion", false, false) INITIALIZE_PASS_END(MachineLICM" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">INITIALIZE_PASS_BEGIN </td>
+          <td>(</td>
+          <td class="paramtype">MachineLICM </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"machinelicm" </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Machine <a class="el" href="classllvm_1_1Loop.html">Loop</a> Invariant Code <a class="el" href="MachineLICM_8cpp.html#adb278d56cfd897fb0c3eea6508fed1c4">Motion</a>" </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a> </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a> </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab291fb9293f91eda708874e0e75e815e"></a><!-- doxytag: member="MachineLICM.cpp::InstructionStoresToFI" ref="ab291fb9293f91eda708874e0e75e815e" args="(const MachineInstr *MI, int FI)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> InstructionStoresToFI </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classllvm_1_1MachineInstr.html">MachineInstr</a> * </td>
+          <td class="paramname"><em>MI</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int </td>
+          <td class="paramname"><em>FI</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>InstructionStoresToFI - Return true if instruction stores to the specified frame. </p>
+
+<p>Definition at line <a class="el" href="MachineLICM_8cpp_source.html#l00387">387</a> of file <a class="el" href="MachineLICM_8cpp_source.html">MachineLICM.cpp</a>.</p>
+
+<p>References <a class="el" href="MachineInstr_8h_source.html#l00273">llvm::MachineInstr::memoperands_begin()</a>, and <a class="el" href="MachineInstr_8h_source.html#l00274">llvm::MachineInstr::memoperands_end()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a27155066ff11c6a72e3dd16c774d4655"></a><!-- doxytag: member="MachineLICM.cpp::isLoadFromGOTOrConstantPool" ref="a27155066ff11c6a72e3dd16c774d4655" args="(MachineInstr &MI)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> isLoadFromGOTOrConstantPool </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1MachineInstr.html">MachineInstr</a> & </td>
+          <td class="paramname"><em>MI</em></td><td>)</td>
+          <td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>isLoadFromGOTOrConstantPool - Return true if this machine instruction loads from global offset table or constant pool. </p>
+
+<p>Definition at line <a class="el" href="MachineLICM_8cpp_source.html#l00878">878</a> of file <a class="el" href="MachineLICM_8cpp_source.html">MachineLICM.cpp</a>.</p>
+
+<p>References <a class="el" href="ARMBaseInfo_8h_source.html#l00097">llvm::ARM_PROC::I</a>, <a class="el" href="MachineInstr_8h_source.html#l00447">llvm::MachineInstr::mayLoad()</a>, <a class="el" href="MachineInstr_8h_source.html#l00273">llvm::MachineInstr::memoperands_begin()</a>, and <a class="el" href="MachineInstr_8h_source.html#l00274">llvm::MachineInstr::memoperands_end()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3b6f8318fa97ea96ea30725e31e85fea"></a><!-- doxytag: member="MachineLICM.cpp::isOperandKill" ref="a3b6f8318fa97ea96ea30725e31e85fea" args="(const MachineOperand &MO, MachineRegisterInfo *MRI)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> isOperandKill </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classllvm_1_1MachineOperand.html">MachineOperand</a> & </td>
+          <td class="paramname"><em>MO</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1MachineRegisterInfo.html">MachineRegisterInfo</a> * </td>
+          <td class="paramname"><em>MRI</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MachineLICM_8cpp_source.html#l00772">772</a> of file <a class="el" href="MachineLICM_8cpp_source.html">MachineLICM.cpp</a>.</p>
+
+<p>References <a class="el" href="MachineOperand_8h_source.html#l00257">llvm::MachineOperand::getReg()</a>, <a class="el" href="MachineRegisterInfo_8cpp_source.html#l00220">llvm::MachineRegisterInfo::hasOneNonDBGUse()</a>, and <a class="el" href="MachineOperand_8h_source.html#l00287">llvm::MachineOperand::isKill()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abbbf9ad51415e03f77597a5dedce3f99"></a><!-- doxytag: member="MachineLICM.cpp::LoopIsOuterMostWithPredecessor" ref="abbbf9ad51415e03f77597a5dedce3f99" args="(MachineLoop *CurLoop)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Machine <a class="el" href="classllvm_1_1Loop.html">Loop</a> Invariant Code static <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a> <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> LoopIsOuterMostWithPredecessor </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1MachineLoop.html">MachineLoop</a> * </td>
+          <td class="paramname"><em>CurLoop</em></td><td>)</td>
+          <td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>LoopIsOuterMostWithPredecessor - Test if the given loop is the outer-most loop that has a unique predecessor. </p>
+
+<p>Definition at line <a class="el" href="MachineLICM_8cpp_source.html#l00309">309</a> of file <a class="el" href="MachineLICM_8cpp_source.html">MachineLICM.cpp</a>.</p>
+
+<p>References <a class="el" href="LoopInfo_8h_source.html#l00097">llvm::LoopBase< BlockT, LoopT >::getParentLoop()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5f440ca7f5a9bc1a0e43538f8b49e5ec"></a><!-- doxytag: member="MachineLICM.cpp::STATISTIC" ref="a5f440ca7f5a9bc1a0e43538f8b49e5ec" args="(NumHoisted,"Number of machine instructions hoisted out of loops")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumHoisted </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of machine <a class="el" href="SimplifyInstructions_8cpp.html#afbf38da490ab8cea559fee0c9081db06">instructions</a> hoisted <a class="el" href="ProfileDataLoaderPass_8cpp.html#adee94aee897e283127f9fe996a84c6ef">out</a> of <a class="el" href="LoopSimplify_8cpp.html#ac68567aa12ef395f71061eff8f6dd7df">loops</a>" </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a19c89c2c59c4b430af03aa53ce5735fd"></a><!-- doxytag: member="MachineLICM.cpp::STATISTIC" ref="a19c89c2c59c4b430af03aa53ce5735fd" args="(NumLowRP,"Number of instructions hoisted in low reg pressure situation")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumLowRP </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of <a class="el" href="SimplifyInstructions_8cpp.html#afbf38da490ab8cea559fee0c9081db06">instructions</a> hoisted in low reg pressure situation" </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af7aedbe8819bd0992c8fa627e8765c91"></a><!-- doxytag: member="MachineLICM.cpp::STATISTIC" ref="af7aedbe8819bd0992c8fa627e8765c91" args="(NumHighLatency,"Number of high latency instructions hoisted")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumHighLatency </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of high latency <a class="el" href="SimplifyInstructions_8cpp.html#afbf38da490ab8cea559fee0c9081db06">instructions</a> hoisted" </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab9a84997f0657e0558d11b39a5450be7"></a><!-- doxytag: member="MachineLICM.cpp::STATISTIC" ref="ab9a84997f0657e0558d11b39a5450be7" args="(NumCSEed,"Number of hoisted machine instructions CSEed")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumCSEed </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of hoisted machine <a class="el" href="SimplifyInstructions_8cpp.html#afbf38da490ab8cea559fee0c9081db06">instructions</a> CSEed" </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad2f3e83a3c6b9b08f9063ced04ed1241"></a><!-- doxytag: member="MachineLICM.cpp::STATISTIC" ref="ad2f3e83a3c6b9b08f9063ced04ed1241" args="(NumPostRAHoisted,"Number of machine instructions hoisted out of loops post regalloc")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumPostRAHoisted </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of machine <a class="el" href="SimplifyInstructions_8cpp.html#afbf38da490ab8cea559fee0c9081db06">instructions</a> hoisted <a class="el" href="ProfileDataLoaderPass_8cpp.html#adee94aee897e283127f9fe996a84c6ef">out</a> of <a class="el" href="LoopSimplify_8cpp.html#ac68567aa12ef395f71061eff8f6dd7df">loops</a> post regalloc" </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="a330f2a9738da6c37a754f204519c6351"></a><!-- doxytag: member="MachineLICM.cpp::AvoidSpeculation" ref="a330f2a9738da6c37a754f204519c6351" args="("avoid-speculation", cl::desc("MachineLICM should avoid speculation"), cl::init(true), cl::Hidden)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classllvm_1_1cl_1_1opt.html">cl::opt</a><<a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a>> <a class="el" href="MachineLICM_8cpp.html#a330f2a9738da6c37a754f204519c6351">AvoidSpeculation</a>("avoid-speculation", cl::desc("MachineLICM should avoid speculation"), cl::init(<a class="el" href="LoopSimplify_8cpp.html#a13f020c6a40eb04f1b4f9ddfbb004ce0">true</a>), cl::Hidden)<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5cc870b0e088cf758aea11748ef4fce5"></a><!-- doxytag: member="MachineLICM.cpp::false" ref="a5cc870b0e088cf758aea11748ef4fce5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Machine <a class="el" href="classllvm_1_1Loop.html">Loop</a> Invariant Code <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MachineLICM_8cpp_source.html#l00304">304</a> of file <a class="el" href="MachineLICM_8cpp_source.html">MachineLICM.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a67fba080ac198ef02581a992c85d532a"></a><!-- doxytag: member="MachineLICM.cpp::machinelicm" ref="a67fba080ac198ef02581a992c85d532a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="MachineLICM_8cpp.html#a67fba080ac198ef02581a992c85d532a">machinelicm</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MachineLICM_8cpp_source.html#l00304">304</a> of file <a class="el" href="MachineLICM_8cpp_source.html">MachineLICM.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adb278d56cfd897fb0c3eea6508fed1c4"></a><!-- doxytag: member="MachineLICM.cpp::Motion" ref="adb278d56cfd897fb0c3eea6508fed1c4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Machine <a class="el" href="classllvm_1_1Loop.html">Loop</a> Invariant Code <a class="el" href="MachineLICM_8cpp.html#adb278d56cfd897fb0c3eea6508fed1c4">Motion</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="MachineLICM_8cpp_source.html#l00304">304</a> of file <a class="el" href="MachineLICM_8cpp_source.html">MachineLICM.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:31 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineLICM_8cpp__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineLICM_8cpp__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MachineLICM_8cpp__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineLICM_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineLICM_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineLICM_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineLICM_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,1544 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineLICM.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_f2244d21cf8bec63d11bfc1ad661d96f.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MachineLICM.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="MachineLICM_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- MachineLICM.cpp - Machine Loop Invariant Code Motion Pass ---------===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This pass performs loop invariant code motion on machine instructions. We</span>
+<a name="l00011"></a>00011 <span class="comment">// attempt to remove as much code from the body of a loop as possible.</span>
+<a name="l00012"></a>00012 <span class="comment">//</span>
+<a name="l00013"></a>00013 <span class="comment">// This pass does not attempt to throttle itself to limit register pressure.</span>
+<a name="l00014"></a>00014 <span class="comment">// The register allocation phases are expected to perform rematerialization</span>
+<a name="l00015"></a>00015 <span class="comment">// to recover when register pressure is high.</span>
+<a name="l00016"></a>00016 <span class="comment">//</span>
+<a name="l00017"></a>00017 <span class="comment">// This pass is not intended to be a replacement or a complete alternative</span>
+<a name="l00018"></a>00018 <span class="comment">// for the LLVM-IR-level LICM pass. It is only designed to hoist simple</span>
+<a name="l00019"></a>00019 <span class="comment">// constructs that are not exposed before lowering and instruction selection.</span>
+<a name="l00020"></a>00020 <span class="comment">//</span>
+<a name="l00021"></a>00021 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00022"></a>00022 
+<a name="l00023"></a><a class="code" href="MachineLICM_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">00023</a> <span class="preprocessor">#define DEBUG_TYPE "machine-licm"</span>
+<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="CodeGen_2Passes_8h.html">llvm/CodeGen/Passes.h</a>"</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="MachineDominators_8h.html">llvm/CodeGen/MachineDominators.h</a>"</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="MachineFrameInfo_8h.html">llvm/CodeGen/MachineFrameInfo.h</a>"</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="MachineLoopInfo_8h.html">llvm/CodeGen/MachineLoopInfo.h</a>"</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="MachineMemOperand_8h.html">llvm/CodeGen/MachineMemOperand.h</a>"</span>
+<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="MachineRegisterInfo_8h.html">llvm/CodeGen/MachineRegisterInfo.h</a>"</span>
+<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="PseudoSourceValue_8h.html">llvm/CodeGen/PseudoSourceValue.h</a>"</span>
+<a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="MCInstrItineraries_8h.html">llvm/MC/MCInstrItineraries.h</a>"</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="TargetLowering_8h.html">llvm/Target/TargetLowering.h</a>"</span>
+<a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="TargetRegisterInfo_8h.html">llvm/Target/TargetRegisterInfo.h</a>"</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="TargetInstrInfo_8h.html">llvm/Target/TargetInstrInfo.h</a>"</span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="Target_2TargetMachine_8h.html">llvm/Target/TargetMachine.h</a>"</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="AliasAnalysis_8h.html">llvm/Analysis/AliasAnalysis.h</a>"</span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="DenseMap_8h.html">llvm/ADT/DenseMap.h</a>"</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="SmallSet_8h.html">llvm/ADT/SmallSet.h</a>"</span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="Statistic_8h.html">llvm/ADT/Statistic.h</a>"</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="CommandLine_8h.html">llvm/Support/CommandLine.h</a>"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="Debug_8h.html">llvm/Support/Debug.h</a>"</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="raw__ostream_8h.html">llvm/Support/raw_ostream.h</a>"</span>
+<a name="l00043"></a>00043 <span class="keyword">using namespace </span>llvm;
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="keyword">static</span> <a class="code" href="classllvm_1_1cl_1_1opt.html">cl::opt<bool></a>
+<a name="l00046"></a>00046 <a class="code" href="MachineLICM_8cpp.html#a330f2a9738da6c37a754f204519c6351">AvoidSpeculation</a>(<span class="stringliteral">"avoid-speculation"</span>,
+<a name="l00047"></a>00047                  <a class="code" href="structllvm_1_1cl_1_1desc.html">cl::desc</a>(<span class="stringliteral">"MachineLICM should avoid speculation"</span>),
+<a name="l00048"></a>00048                  <a class="code" href="namespacellvm_1_1cl.html#a10a041239ae1870cfcc064bfaa79fb65">cl::init</a>(<span class="keyword">true</span>), <a class="code" href="namespacellvm_1_1cl.html#a68075925a54790e71ca790e1d4f21a40a263ac008d8d31f13ce460395fc4cf7e6">cl::Hidden</a>);
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(NumHoisted,
+<a name="l00051"></a>00051           <span class="stringliteral">"Number of machine instructions hoisted out of loops"</span>);
+<a name="l00052"></a>00052 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(NumLowRP,
+<a name="l00053"></a>00053           <span class="stringliteral">"Number of instructions hoisted in low reg pressure situation"</span>);
+<a name="l00054"></a>00054 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(NumHighLatency,
+<a name="l00055"></a>00055           <span class="stringliteral">"Number of high latency instructions hoisted"</span>);
+<a name="l00056"></a>00056 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(NumCSEed,
+<a name="l00057"></a>00057           <span class="stringliteral">"Number of hoisted machine instructions CSEed"</span>);
+<a name="l00058"></a>00058 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(NumPostRAHoisted,
+<a name="l00059"></a>00059           <span class="stringliteral">"Number of machine instructions hoisted out of loops post regalloc"</span>);
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061 <span class="keyword">namespace </span>{
+<a name="l00062"></a>00062   <span class="keyword">class </span>MachineLICM : <span class="keyword">public</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a> {
+<a name="l00063"></a>00063     <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetMachine.html">TargetMachine</a>   *TM;
+<a name="l00064"></a>00064     <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetInstrInfo.html">TargetInstrInfo</a> *TII;
+<a name="l00065"></a>00065     <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetLowering.html">TargetLowering</a> *TLI;
+<a name="l00066"></a>00066     <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterInfo.html">TargetRegisterInfo</a> *TRI;
+<a name="l00067"></a>00067     <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineFrameInfo.html" title="Abstract Stack Frame Information.">MachineFrameInfo</a> *MFI;
+<a name="l00068"></a>00068     <a class="code" href="classllvm_1_1MachineRegisterInfo.html">MachineRegisterInfo</a> *MRI;
+<a name="l00069"></a>00069     <span class="keyword">const</span> <a class="code" href="classllvm_1_1InstrItineraryData.html">InstrItineraryData</a> *InstrItins;
+<a name="l00070"></a>00070     <span class="keywordtype">bool</span> PreRegAlloc;
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072     <span class="comment">// Various analyses that we use...</span>
+<a name="l00073"></a>00073     <a class="code" href="classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>        *AA;      <span class="comment">// Alias analysis info.</span>
+<a name="l00074"></a>00074     <a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a>      *MLI;     <span class="comment">// Current MachineLoopInfo</span>
+<a name="l00075"></a>00075     <a class="code" href="classllvm_1_1MachineDominatorTree.html">MachineDominatorTree</a> *DT;      <span class="comment">// Machine dominator tree for the cur loop</span>
+<a name="l00076"></a>00076 
+<a name="l00077"></a>00077     <span class="comment">// State that is updated as we process loops</span>
+<a name="l00078"></a>00078     <span class="keywordtype">bool</span>         Changed;          <span class="comment">// True if a loop is changed.</span>
+<a name="l00079"></a>00079     <span class="keywordtype">bool</span>         FirstInLoop;      <span class="comment">// True if it's the first LICM in the loop.</span>
+<a name="l00080"></a>00080     <a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> *CurLoop;          <span class="comment">// The current loop we are working on.</span>
+<a name="l00081"></a>00081     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *CurPreheader; <span class="comment">// The preheader for CurLoop.</span>
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083     <span class="comment">// Exit blocks for CurLoop.</span>
+<a name="l00084"></a>00084     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineBasicBlock*, 8></a> ExitBlocks;
+<a name="l00085"></a>00085 
+<a name="l00086"></a>00086     <span class="keywordtype">bool</span> <a class="code" href="LCSSA_8cpp.html#a07f138d2a84576c85e238a26969e5ff9" title="isExitBlock - Return true if the specified block is in the list.">isExitBlock</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB)<span class="keyword"> const </span>{
+<a name="l00087"></a>00087       <span class="keywordflow">return</span> std::find(ExitBlocks.begin(), ExitBlocks.end(), MBB) !=
+<a name="l00088"></a>00088         ExitBlocks.end();
+<a name="l00089"></a>00089     }
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091     <span class="comment">// Track 'estimated' register pressure.</span>
+<a name="l00092"></a>00092     <a class="code" href="classllvm_1_1SmallSet.html">SmallSet<unsigned, 32></a> RegSeen;
+<a name="l00093"></a>00093     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<unsigned, 8></a> <a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>;
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095     <span class="comment">// Register pressure "limit" per register class. If the pressure</span>
+<a name="l00096"></a>00096     <span class="comment">// is higher than the limit, then it's considered high.</span>
+<a name="l00097"></a>00097     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<unsigned, 8></a> RegLimit;
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099     <span class="comment">// Register pressure on path leading from loop preheader to current BB.</span>
+<a name="l00100"></a>00100     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<SmallVector<unsigned, 8></a>, 16> BackTrace;
+<a name="l00101"></a>00101 
+<a name="l00102"></a>00102     <span class="comment">// For each opcode, keep a list of potential CSE instructions.</span>
+<a name="l00103"></a>00103     <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, std::vector<const MachineInstr*></a> > CSEMap;
+<a name="l00104"></a>00104 
+<a name="l00105"></a>00105     <span class="keyword">enum</span> {
+<a name="l00106"></a>00106       SpeculateFalse   = 0,
+<a name="l00107"></a>00107       SpeculateTrue    = 1,
+<a name="l00108"></a>00108       SpeculateUnknown = 2
+<a name="l00109"></a>00109     };
+<a name="l00110"></a>00110 
+<a name="l00111"></a>00111     <span class="comment">// If a MBB does not dominate loop exiting blocks then it may not safe</span>
+<a name="l00112"></a>00112     <span class="comment">// to hoist loads from this block.</span>
+<a name="l00113"></a>00113     <span class="comment">// Tri-state: 0 - false, 1 - true, 2 - unknown</span>
+<a name="l00114"></a>00114     <span class="keywordtype">unsigned</span> SpeculationState;
+<a name="l00115"></a>00115 
+<a name="l00116"></a>00116   <span class="keyword">public</span>:
+<a name="l00117"></a>00117     <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>; <span class="comment">// Pass identification, replacement for typeid</span>
+<a name="l00118"></a>00118     MachineLICM() :
+<a name="l00119"></a>00119       <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a>(<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>), PreRegAlloc(<a class="code" href="BasicAliasAnalysis_8cpp.html#a80603f23207dd836075c078e6264204a">true</a>) {
+<a name="l00120"></a>00120         <a class="code" href="namespacellvm.html#a94452f68adbacd71414af478f55df784">initializeMachineLICMPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00121"></a>00121       }
+<a name="l00122"></a>00122 
+<a name="l00123"></a>00123     <span class="keyword">explicit</span> MachineLICM(<span class="keywordtype">bool</span> PreRA) :
+<a name="l00124"></a>00124       <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a>(<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>), PreRegAlloc(PreRA) {
+<a name="l00125"></a>00125         <a class="code" href="namespacellvm.html#a94452f68adbacd71414af478f55df784">initializeMachineLICMPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00126"></a>00126       }
+<a name="l00127"></a>00127 
+<a name="l00128"></a>00128     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> runOnMachineFunction(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF);
+<a name="l00129"></a>00129 
+<a name="l00130"></a>00130     <span class="keyword">virtual</span> <span class="keywordtype">void</span> getAnalysisUsage(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU)<span class="keyword"> const </span>{
+<a name="l00131"></a>00131       AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a>>();
+<a name="l00132"></a>00132       AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1MachineDominatorTree.html">MachineDominatorTree</a>>();
+<a name="l00133"></a>00133       AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>>();
+<a name="l00134"></a>00134       AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a><<a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a>>();
+<a name="l00135"></a>00135       AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a><<a class="code" href="classllvm_1_1MachineDominatorTree.html">MachineDominatorTree</a>>();
+<a name="l00136"></a>00136       <a class="code" href="classllvm_1_1MachineFunctionPass.html#aa1eece37d175f86a6f4808c0c167f13b">MachineFunctionPass::getAnalysisUsage</a>(AU);
+<a name="l00137"></a>00137     }
+<a name="l00138"></a>00138 
+<a name="l00139"></a>00139     <span class="keyword">virtual</span> <span class="keywordtype">void</span> releaseMemory() {
+<a name="l00140"></a>00140       RegSeen.clear();
+<a name="l00141"></a>00141       <a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>.clear();
+<a name="l00142"></a>00142       RegLimit.clear();
+<a name="l00143"></a>00143       BackTrace.clear();
+<a name="l00144"></a>00144       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1DenseMap.html">DenseMap</a><<span class="keywordtype">unsigned</span>,std::vector<const MachineInstr*> >::<a class="code" href="classstd_1_1iterator.html">iterator</a>
+<a name="l00145"></a>00145              CI = CSEMap.begin(), CE = CSEMap.end(); CI != CE; ++CI)
+<a name="l00146"></a>00146         CI->second.clear();
+<a name="l00147"></a>00147       CSEMap.clear();
+<a name="l00148"></a>00148     }
+<a name="l00149"></a>00149 
+<a name="l00150"></a>00150   <span class="keyword">private</span>:<span class="comment"></span>
+<a name="l00151"></a>00151 <span class="comment">    /// CandidateInfo - Keep track of information about hoisting candidates.</span>
+<a name="l00152"></a>00152 <span class="comment"></span>    <span class="keyword">struct </span>CandidateInfo {
+<a name="l00153"></a>00153       <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>;
+<a name="l00154"></a>00154       <span class="keywordtype">unsigned</span>      <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5aceb138f68fe183995736614928e3394a">Def</a>;
+<a name="l00155"></a>00155       <span class="keywordtype">int</span>           FI;
+<a name="l00156"></a>00156       CandidateInfo(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *mi, <span class="keywordtype">unsigned</span> def, <span class="keywordtype">int</span> fi)
+<a name="l00157"></a>00157         : <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>(mi), <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5aceb138f68fe183995736614928e3394a">Def</a>(def), FI(fi) {}
+<a name="l00158"></a>00158     };
+<a name="l00159"></a>00159 <span class="comment"></span>
+<a name="l00160"></a>00160 <span class="comment">    /// HoistRegionPostRA - Walk the specified region of the CFG and hoist loop</span>
+<a name="l00161"></a>00161 <span class="comment">    /// invariants out to the preheader.</span>
+<a name="l00162"></a>00162 <span class="comment"></span>    <span class="keywordtype">void</span> HoistRegionPostRA();
+<a name="l00163"></a>00163 <span class="comment"></span>
+<a name="l00164"></a>00164 <span class="comment">    /// HoistPostRA - When an instruction is found to only use loop invariant</span>
+<a name="l00165"></a>00165 <span class="comment">    /// operands that is safe to hoist, this instruction is called to do the</span>
+<a name="l00166"></a>00166 <span class="comment">    /// dirty work.</span>
+<a name="l00167"></a>00167 <span class="comment"></span>    <span class="keywordtype">void</span> HoistPostRA(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>, <span class="keywordtype">unsigned</span> <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5aceb138f68fe183995736614928e3394a">Def</a>);
+<a name="l00168"></a>00168 <span class="comment"></span>
+<a name="l00169"></a>00169 <span class="comment">    /// ProcessMI - Examine the instruction for potentai LICM candidate. Also</span>
+<a name="l00170"></a>00170 <span class="comment">    /// gather register def and frame object update information.</span>
+<a name="l00171"></a>00171 <span class="comment"></span>    <span class="keywordtype">void</span> ProcessMI(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>,
+<a name="l00172"></a>00172                    <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> &PhysRegDefs,
+<a name="l00173"></a>00173                    <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> &PhysRegClobbers,
+<a name="l00174"></a>00174                    <a class="code" href="classllvm_1_1SmallSet.html">SmallSet<int, 32></a> &StoredFIs,
+<a name="l00175"></a>00175                    <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<CandidateInfo, 32></a> &Candidates);
+<a name="l00176"></a>00176 <span class="comment"></span>
+<a name="l00177"></a>00177 <span class="comment">    /// AddToLiveIns - Add register 'Reg' to the livein sets of BBs in the</span>
+<a name="l00178"></a>00178 <span class="comment">    /// current loop.</span>
+<a name="l00179"></a>00179 <span class="comment"></span>    <span class="keywordtype">void</span> AddToLiveIns(<span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>);
+<a name="l00180"></a>00180 <span class="comment"></span>
+<a name="l00181"></a>00181 <span class="comment">    /// IsLICMCandidate - Returns true if the instruction may be a suitable</span>
+<a name="l00182"></a>00182 <span class="comment">    /// candidate for LICM. e.g. If the instruction is a call, then it's</span>
+<a name="l00183"></a>00183 <span class="comment">    /// obviously not safe to hoist it.</span>
+<a name="l00184"></a>00184 <span class="comment"></span>    <span class="keywordtype">bool</span> IsLICMCandidate(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> &<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l00185"></a>00185 <span class="comment"></span>
+<a name="l00186"></a>00186 <span class="comment">    /// IsLoopInvariantInst - Returns true if the instruction is loop</span>
+<a name="l00187"></a>00187 <span class="comment">    /// invariant. I.e., all virtual register operands are defined outside of</span>
+<a name="l00188"></a>00188 <span class="comment">    /// the loop, physical registers aren't accessed (explicitly or implicitly),</span>
+<a name="l00189"></a>00189 <span class="comment">    /// and the instruction is hoistable.</span>
+<a name="l00190"></a>00190 <span class="comment">    ///</span>
+<a name="l00191"></a>00191 <span class="comment"></span>    <span class="keywordtype">bool</span> IsLoopInvariantInst(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> &<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l00192"></a>00192 <span class="comment"></span>
+<a name="l00193"></a>00193 <span class="comment">    /// HasLoopPHIUse - Return true if the specified instruction is used by any</span>
+<a name="l00194"></a>00194 <span class="comment">    /// phi node in the current loop.</span>
+<a name="l00195"></a>00195 <span class="comment"></span>    <span class="keywordtype">bool</span> HasLoopPHIUse(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>) <span class="keyword">const</span>;
+<a name="l00196"></a>00196 <span class="comment"></span>
+<a name="l00197"></a>00197 <span class="comment">    /// HasHighOperandLatency - Compute operand latency between a def of 'Reg'</span>
+<a name="l00198"></a>00198 <span class="comment">    /// and an use in the current loop, return true if the target considered</span>
+<a name="l00199"></a>00199 <span class="comment">    /// it 'high'.</span>
+<a name="l00200"></a>00200 <span class="comment"></span>    <span class="keywordtype">bool</span> HasHighOperandLatency(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> &<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>, <span class="keywordtype">unsigned</span> DefIdx,
+<a name="l00201"></a>00201                                <span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>) <span class="keyword">const</span>;
+<a name="l00202"></a>00202 
+<a name="l00203"></a>00203     <span class="keywordtype">bool</span> IsCheapInstruction(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> &<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>) <span class="keyword">const</span>;
+<a name="l00204"></a>00204 <span class="comment"></span>
+<a name="l00205"></a>00205 <span class="comment">    /// CanCauseHighRegPressure - Visit BBs from header to current BB,</span>
+<a name="l00206"></a>00206 <span class="comment">    /// check if hoisting an instruction of the given cost matrix can cause high</span>
+<a name="l00207"></a>00207 <span class="comment">    /// register pressure.</span>
+<a name="l00208"></a>00208 <span class="comment"></span>    <span class="keywordtype">bool</span> CanCauseHighRegPressure(<a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, int></a> &Cost, <span class="keywordtype">bool</span> Cheap);
+<a name="l00209"></a>00209 <span class="comment"></span>
+<a name="l00210"></a>00210 <span class="comment">    /// UpdateBackTraceRegPressure - Traverse the back trace from header to</span>
+<a name="l00211"></a>00211 <span class="comment">    /// the current block and update their register pressures to reflect the</span>
+<a name="l00212"></a>00212 <span class="comment">    /// effect of hoisting MI from the current block to the preheader.</span>
+<a name="l00213"></a>00213 <span class="comment"></span>    <span class="keywordtype">void</span> UpdateBackTraceRegPressure(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>);
+<a name="l00214"></a>00214 <span class="comment"></span>
+<a name="l00215"></a>00215 <span class="comment">    /// IsProfitableToHoist - Return true if it is potentially profitable to</span>
+<a name="l00216"></a>00216 <span class="comment">    /// hoist the given loop invariant.</span>
+<a name="l00217"></a>00217 <span class="comment"></span>    <span class="keywordtype">bool</span> IsProfitableToHoist(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> &<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>);
+<a name="l00218"></a>00218 <span class="comment"></span>
+<a name="l00219"></a>00219 <span class="comment">    /// IsGuaranteedToExecute - Check if this mbb is guaranteed to execute.</span>
+<a name="l00220"></a>00220 <span class="comment">    /// If not then a load from this mbb may not be safe to hoist.</span>
+<a name="l00221"></a>00221 <span class="comment"></span>    <span class="keywordtype">bool</span> IsGuaranteedToExecute(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB);
+<a name="l00222"></a>00222 
+<a name="l00223"></a>00223     <span class="keywordtype">void</span> EnterScope(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB);
+<a name="l00224"></a>00224 
+<a name="l00225"></a>00225     <span class="keywordtype">void</span> ExitScope(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB);
+<a name="l00226"></a>00226 <span class="comment"></span>
+<a name="l00227"></a>00227 <span class="comment">    /// ExitScopeIfDone - Destroy scope for the MBB that corresponds to given</span>
+<a name="l00228"></a>00228 <span class="comment">    /// dominator tree node if its a leaf or all of its children are done. Walk</span>
+<a name="l00229"></a>00229 <span class="comment">    /// up the dominator tree to destroy ancestors which are now done.</span>
+<a name="l00230"></a>00230 <span class="comment"></span>    <span class="keywordtype">void</span> ExitScopeIfDone(<a class="code" href="classllvm_1_1DomTreeNodeBase.html">MachineDomTreeNode</a> *Node,
+<a name="l00231"></a>00231                 <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<MachineDomTreeNode*, unsigned></a> &OpenChildren,
+<a name="l00232"></a>00232                 <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<MachineDomTreeNode*, MachineDomTreeNode*></a> &ParentMap);
+<a name="l00233"></a>00233 <span class="comment"></span>
+<a name="l00234"></a>00234 <span class="comment">    /// HoistOutOfLoop - Walk the specified loop in the CFG (defined by all</span>
+<a name="l00235"></a>00235 <span class="comment">    /// blocks dominated by the specified header block, and that are in the</span>
+<a name="l00236"></a>00236 <span class="comment">    /// current loop) in depth first order w.r.t the DominatorTree. This allows</span>
+<a name="l00237"></a>00237 <span class="comment">    /// us to visit definitions before uses, allowing us to hoist a loop body in</span>
+<a name="l00238"></a>00238 <span class="comment">    /// one pass without iteration.</span>
+<a name="l00239"></a>00239 <span class="comment">    ///</span>
+<a name="l00240"></a>00240 <span class="comment"></span>    <span class="keywordtype">void</span> HoistOutOfLoop(<a class="code" href="classllvm_1_1DomTreeNodeBase.html">MachineDomTreeNode</a> *LoopHeaderNode);
+<a name="l00241"></a>00241     <span class="keywordtype">void</span> HoistRegion(<a class="code" href="classllvm_1_1DomTreeNodeBase.html">MachineDomTreeNode</a> *N, <span class="keywordtype">bool</span> IsHeader);
+<a name="l00242"></a>00242 <span class="comment"></span>
+<a name="l00243"></a>00243 <span class="comment">    /// getRegisterClassIDAndCost - For a given MI, register, and the operand</span>
+<a name="l00244"></a>00244 <span class="comment">    /// index, return the ID and cost of its representative register class by</span>
+<a name="l00245"></a>00245 <span class="comment">    /// reference.</span>
+<a name="l00246"></a>00246 <span class="comment"></span>    <span class="keywordtype">void</span> getRegisterClassIDAndCost(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>,
+<a name="l00247"></a>00247                                    <span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>, <span class="keywordtype">unsigned</span> OpIdx,
+<a name="l00248"></a>00248                                    <span class="keywordtype">unsigned</span> &RCId, <span class="keywordtype">unsigned</span> &RCCost) <span class="keyword">const</span>;
+<a name="l00249"></a>00249 <span class="comment"></span>
+<a name="l00250"></a>00250 <span class="comment">    /// InitRegPressure - Find all virtual register references that are liveout</span>
+<a name="l00251"></a>00251 <span class="comment">    /// of the preheader to initialize the starting "register pressure". Note</span>
+<a name="l00252"></a>00252 <span class="comment">    /// this does not count live through (livein but not used) registers.</span>
+<a name="l00253"></a>00253 <span class="comment"></span>    <span class="keywordtype">void</span> InitRegPressure(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB);
+<a name="l00254"></a>00254 <span class="comment"></span>
+<a name="l00255"></a>00255 <span class="comment">    /// UpdateRegPressure - Update estimate of register pressure after the</span>
+<a name="l00256"></a>00256 <span class="comment">    /// specified instruction.</span>
+<a name="l00257"></a>00257 <span class="comment"></span>    <span class="keywordtype">void</span> UpdateRegPressure(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>);
+<a name="l00258"></a>00258 <span class="comment"></span>
+<a name="l00259"></a>00259 <span class="comment">    /// ExtractHoistableLoad - Unfold a load from the given machineinstr if</span>
+<a name="l00260"></a>00260 <span class="comment">    /// the load itself could be hoisted. Return the unfolded and hoistable</span>
+<a name="l00261"></a>00261 <span class="comment">    /// load, or null if the load couldn't be unfolded or if it wouldn't</span>
+<a name="l00262"></a>00262 <span class="comment">    /// be hoistable.</span>
+<a name="l00263"></a>00263 <span class="comment"></span>    <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *ExtractHoistableLoad(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>);
+<a name="l00264"></a>00264 <span class="comment"></span>
+<a name="l00265"></a>00265 <span class="comment">    /// LookForDuplicate - Find an instruction amount PrevMIs that is a</span>
+<a name="l00266"></a>00266 <span class="comment">    /// duplicate of MI. Return this instruction if it's found.</span>
+<a name="l00267"></a>00267 <span class="comment"></span>    <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *LookForDuplicate(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>,
+<a name="l00268"></a>00268                                      std::vector<const MachineInstr*> &PrevMIs);
+<a name="l00269"></a>00269 <span class="comment"></span>
+<a name="l00270"></a>00270 <span class="comment">    /// EliminateCSE - Given a LICM'ed instruction, look for an instruction on</span>
+<a name="l00271"></a>00271 <span class="comment">    /// the preheader that compute the same value. If it's found, do a RAU on</span>
+<a name="l00272"></a>00272 <span class="comment">    /// with the definition of the existing instruction rather than hoisting</span>
+<a name="l00273"></a>00273 <span class="comment">    /// the instruction to the preheader.</span>
+<a name="l00274"></a>00274 <span class="comment"></span>    <span class="keywordtype">bool</span> EliminateCSE(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>,
+<a name="l00275"></a>00275            <a class="code" href="classllvm_1_1DenseMap.html">DenseMap</a><<span class="keywordtype">unsigned</span>, std::vector<const MachineInstr*> >::<a class="code" href="classstd_1_1iterator.html">iterator</a> &CI);
+<a name="l00276"></a>00276 <span class="comment"></span>
+<a name="l00277"></a>00277 <span class="comment">    /// MayCSE - Return true if the given instruction will be CSE'd if it's</span>
+<a name="l00278"></a>00278 <span class="comment">    /// hoisted out of the loop.</span>
+<a name="l00279"></a>00279 <span class="comment"></span>    <span class="keywordtype">bool</span> MayCSE(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>);
+<a name="l00280"></a>00280 <span class="comment"></span>
+<a name="l00281"></a>00281 <span class="comment">    /// Hoist - When an instruction is found to only use loop invariant operands</span>
+<a name="l00282"></a>00282 <span class="comment">    /// that is safe to hoist, this instruction is called to do the dirty work.</span>
+<a name="l00283"></a>00283 <span class="comment">    /// It returns true if the instruction is hoisted.</span>
+<a name="l00284"></a>00284 <span class="comment"></span>    <span class="keywordtype">bool</span> Hoist(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>, <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Preheader);
+<a name="l00285"></a>00285 <span class="comment"></span>
+<a name="l00286"></a>00286 <span class="comment">    /// InitCSEMap - Initialize the CSE map with instructions that are in the</span>
+<a name="l00287"></a>00287 <span class="comment">    /// current loop preheader that may become duplicates of instructions that</span>
+<a name="l00288"></a>00288 <span class="comment">    /// are hoisted out of the loop.</span>
+<a name="l00289"></a>00289 <span class="comment"></span>    <span class="keywordtype">void</span> InitCSEMap(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB);
+<a name="l00290"></a>00290 <span class="comment"></span>
+<a name="l00291"></a>00291 <span class="comment">    /// getCurPreheader - Get the preheader for the current loop, splitting</span>
+<a name="l00292"></a>00292 <span class="comment">    /// a critical edge if needed.</span>
+<a name="l00293"></a>00293 <span class="comment"></span>    <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *getCurPreheader();
+<a name="l00294"></a>00294   };
+<a name="l00295"></a>00295 } <span class="comment">// end anonymous namespace</span>
+<a name="l00296"></a>00296 
+<a name="l00297"></a>00297 <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">MachineLICM::ID</a> = 0;
+<a name="l00298"></a><a class="code" href="namespacellvm.html#aec913d7a94874651981c1017ac8ef6e0">00298</a> <span class="keywordtype">char</span> &<a class="code" href="namespacellvm.html#aec913d7a94874651981c1017ac8ef6e0" title="MachineLICM - This pass performs LICM on machine instructions.">llvm::MachineLICMID</a> = <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">MachineLICM::ID</a>;
+<a name="l00299"></a>00299 <a class="code" href="PassSupport_8h.html#aaa970fc931c1c63037a8182e028d04b1">INITIALIZE_PASS_BEGIN</a>(MachineLICM, <span class="stringliteral">"machinelicm"</span>,
+<a name="l00300"></a>00300                 <span class="stringliteral">"Machine Loop Invariant Code Motion"</span>, <span class="keyword">false</span>, <span class="keyword">false</span>)
+<a name="l00301"></a>00301 <a class="code" href="PassSupport_8h.html#a14724f1ccf528e73bb29bc9230737967">INITIALIZE_PASS_DEPENDENCY</a>(<a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a>)
+<a name="l00302"></a>00302 <a class="code" href="PassSupport_8h.html#a14724f1ccf528e73bb29bc9230737967">INITIALIZE_PASS_DEPENDENCY</a>(<a class="code" href="classllvm_1_1MachineDominatorTree.html">MachineDominatorTree</a>)
+<a name="l00303"></a>00303 <a class="code" href="PassSupport_8h.html#af0564bcdde2dd4400c670ca278c6035f">INITIALIZE_AG_DEPENDENCY</a>(<a class="code" href="classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>)
+<a name="l00304"></a><a class="code" href="MachineLICM_8cpp.html#adb278d56cfd897fb0c3eea6508fed1c4">00304</a> <a class="code" href="PassSupport_8h.html#a74ce8276b89067e806f67c45a6d92575">INITIALIZE_PASS_END</a>(MachineLICM, "<a class="code" href="MachineLICM_8cpp.html#a67fba080ac198ef02581a992c85d532a">machinelicm</a>",
+<a name="l00305"></a>00305                 "Machine <a class="code" href="classllvm_1_1Loop.html">Loop</a> Invariant <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a4a6621856674f376740a1ba6efd809e3">Code</a> <a class="code" href="MachineLICM_8cpp.html#adb278d56cfd897fb0c3eea6508fed1c4">Motion</a>", <a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>, false)
+<a name="l00306"></a>00306 <span class="comment"></span>
+<a name="l00307"></a>00307 <span class="comment">/// LoopIsOuterMostWithPredecessor - Test if the given loop is the outer-most</span>
+<a name="l00308"></a>00308 <span class="comment">/// loop that has a unique predecessor.</span>
+<a name="l00309"></a><a class="code" href="MachineLICM_8cpp.html#abbbf9ad51415e03f77597a5dedce3f99">00309</a> <span class="comment"></span>static <span class="keywordtype">bool</span> <a class="code" href="MachineLICM_8cpp.html#abbbf9ad51415e03f77597a5dedce3f99">LoopIsOuterMostWithPredecessor</a>(<a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> *CurLoop) {
+<a name="l00310"></a>00310   <span class="comment">// Check whether this loop even has a unique predecessor.</span>
+<a name="l00311"></a>00311   <span class="keywordflow">if</span> (!CurLoop->getLoopPredecessor())
+<a name="l00312"></a>00312     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00313"></a>00313   <span class="comment">// Ok, now check to see if any of its outer loops do.</span>
+<a name="l00314"></a>00314   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> *L = CurLoop-><a class="code" href="classllvm_1_1LoopBase.html#a1431766de798501f107d9031821f311e">getParentLoop</a>(); L; L = L-><a class="code" href="classllvm_1_1LoopBase.html#a1431766de798501f107d9031821f311e">getParentLoop</a>())
+<a name="l00315"></a>00315     <span class="keywordflow">if</span> (L->getLoopPredecessor())
+<a name="l00316"></a>00316       <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00317"></a>00317   <span class="comment">// None of them did, so this is the outermost with a unique predecessor.</span>
+<a name="l00318"></a>00318   <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00319"></a>00319 }
+<a name="l00320"></a>00320 
+<a name="l00321"></a>00321 <span class="keywordtype">bool</span> MachineLICM::runOnMachineFunction(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF) {
+<a name="l00322"></a>00322   Changed = FirstInLoop = <span class="keyword">false</span>;
+<a name="l00323"></a>00323   TM = &MF.<a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>();
+<a name="l00324"></a>00324   TII = TM-><a class="code" href="classllvm_1_1TargetMachine.html#ac13d0f6f2c915757013b101ef6e8afbc">getInstrInfo</a>();
+<a name="l00325"></a>00325   TLI = TM->getTargetLowering();
+<a name="l00326"></a>00326   TRI = TM->getRegisterInfo();
+<a name="l00327"></a>00327   MFI = MF.<a class="code" href="classllvm_1_1MachineFunction.html#a4ad4295a88187ea1ae12ecfcfa18a70f">getFrameInfo</a>();
+<a name="l00328"></a>00328   MRI = &MF.<a class="code" href="classllvm_1_1MachineFunction.html#ab4a6ca428289b667dd691a00e9f7e334">getRegInfo</a>();
+<a name="l00329"></a>00329   InstrItins = TM->getInstrItineraryData();
+<a name="l00330"></a>00330 
+<a name="l00331"></a>00331   PreRegAlloc = MRI-><a class="code" href="classllvm_1_1MachineRegisterInfo.html#a506447dd6402590e58fe1492fa824c01">isSSA</a>();
+<a name="l00332"></a>00332 
+<a name="l00333"></a>00333   <span class="keywordflow">if</span> (PreRegAlloc)
+<a name="l00334"></a>00334     <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"******** Pre-regalloc Machine LICM: "</span>);
+<a name="l00335"></a>00335   <span class="keywordflow">else</span>
+<a name="l00336"></a>00336     <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"******** Post-regalloc Machine LICM: "</span>);
+<a name="l00337"></a>00337   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << MF.<a class="code" href="classllvm_1_1MachineFunction.html#ae215c5c2aecd18c4e68a94187d9cdbf1">getName</a>() << <span class="stringliteral">" ********\n"</span>);
+<a name="l00338"></a>00338 
+<a name="l00339"></a>00339   <span class="keywordflow">if</span> (PreRegAlloc) {
+<a name="l00340"></a>00340     <span class="comment">// Estimate register pressure during pre-regalloc pass.</span>
+<a name="l00341"></a>00341     <span class="keywordtype">unsigned</span> NumRC = TRI->getNumRegClasses();
+<a name="l00342"></a>00342     <a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>.resize(NumRC);
+<a name="l00343"></a>00343     std::fill(<a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>.begin(), <a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>.end(), 0);
+<a name="l00344"></a>00344     RegLimit.resize(NumRC);
+<a name="l00345"></a>00345     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1TargetRegisterInfo.html#a5f3578b3db9bb49d5d3ac5d282b35034">TargetRegisterInfo::regclass_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = TRI->regclass_begin(),
+<a name="l00346"></a>00346            E = TRI->regclass_end(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00347"></a>00347       RegLimit[(*I)->getID()] = TRI->getRegPressureLimit(*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>, MF);
+<a name="l00348"></a>00348   }
+<a name="l00349"></a>00349 
+<a name="l00350"></a>00350   <span class="comment">// Get our Loop information...</span>
+<a name="l00351"></a>00351   MLI = &getAnalysis<MachineLoopInfo>();
+<a name="l00352"></a>00352   DT  = &getAnalysis<MachineDominatorTree>();
+<a name="l00353"></a>00353   AA  = &getAnalysis<AliasAnalysis>();
+<a name="l00354"></a>00354 
+<a name="l00355"></a>00355   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineLoop *, 8></a> Worklist(MLI->begin(), MLI->end());
+<a name="l00356"></a>00356   <span class="keywordflow">while</span> (!Worklist.empty()) {
+<a name="l00357"></a>00357     CurLoop = Worklist.<a class="code" href="classllvm_1_1SmallVectorImpl.html#a0c8ffe664a36e30d49c84d0aded2fe08">pop_back_val</a>();
+<a name="l00358"></a>00358     CurPreheader = 0;
+<a name="l00359"></a>00359     ExitBlocks.clear();
+<a name="l00360"></a>00360 
+<a name="l00361"></a>00361     <span class="comment">// If this is done before regalloc, only visit outer-most preheader-sporting</span>
+<a name="l00362"></a>00362     <span class="comment">// loops.</span>
+<a name="l00363"></a>00363     <span class="keywordflow">if</span> (PreRegAlloc && !<a class="code" href="MachineLICM_8cpp.html#abbbf9ad51415e03f77597a5dedce3f99">LoopIsOuterMostWithPredecessor</a>(CurLoop)) {
+<a name="l00364"></a>00364       Worklist.append(CurLoop->begin(), CurLoop->end());
+<a name="l00365"></a>00365       <span class="keywordflow">continue</span>;
+<a name="l00366"></a>00366     }
+<a name="l00367"></a>00367 
+<a name="l00368"></a>00368     CurLoop->getExitBlocks(ExitBlocks);
+<a name="l00369"></a>00369 
+<a name="l00370"></a>00370     <span class="keywordflow">if</span> (!PreRegAlloc)
+<a name="l00371"></a>00371       HoistRegionPostRA();
+<a name="l00372"></a>00372     <span class="keywordflow">else</span> {
+<a name="l00373"></a>00373       <span class="comment">// CSEMap is initialized for loop header when the first instruction is</span>
+<a name="l00374"></a>00374       <span class="comment">// being hoisted.</span>
+<a name="l00375"></a>00375       <a class="code" href="classllvm_1_1DomTreeNodeBase.html">MachineDomTreeNode</a> *<a class="code" href="regcomp_8c.html#a0240ac851181b84ac374872dc5434ee4">N</a> = DT->getNode(CurLoop->getHeader());
+<a name="l00376"></a>00376       FirstInLoop = <span class="keyword">true</span>;
+<a name="l00377"></a>00377       HoistOutOfLoop(N);
+<a name="l00378"></a>00378       CSEMap.clear();
+<a name="l00379"></a>00379     }
+<a name="l00380"></a>00380   }
+<a name="l00381"></a>00381 
+<a name="l00382"></a>00382   <span class="keywordflow">return</span> Changed;
+<a name="l00383"></a>00383 }
+<a name="l00384"></a>00384 <span class="comment"></span>
+<a name="l00385"></a>00385 <span class="comment">/// InstructionStoresToFI - Return true if instruction stores to the</span>
+<a name="l00386"></a>00386 <span class="comment">/// specified frame.</span>
+<a name="l00387"></a><a class="code" href="MachineLICM_8cpp.html#ab291fb9293f91eda708874e0e75e815e">00387</a> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="MachineLICM_8cpp.html#ab291fb9293f91eda708874e0e75e815e">InstructionStoresToFI</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>, <span class="keywordtype">int</span> FI) {
+<a name="l00388"></a>00388   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineMemOperand.html">MachineInstr::mmo_iterator</a> o = MI-><a class="code" href="classllvm_1_1MachineInstr.html#abb87c1c9d9046e29211e9875e27ceef9" title="Access to memory operands of the instruction.">memoperands_begin</a>(),
+<a name="l00389"></a>00389          oe = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a8d6268ac5d00f510ade10bd1865d9829">memoperands_end</a>(); o != oe; ++o) {
+<a name="l00390"></a>00390     <span class="keywordflow">if</span> (!(*o)->isStore() || !(*o)->getValue())
+<a name="l00391"></a>00391       <span class="keywordflow">continue</span>;
+<a name="l00392"></a>00392     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1FixedStackPseudoSourceValue.html">FixedStackPseudoSourceValue</a> *<a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> =
+<a name="l00393"></a>00393         dyn_cast<const FixedStackPseudoSourceValue>((*o)->getValue())) {
+<a name="l00394"></a>00394       <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>->getFrameIndex() == FI)
+<a name="l00395"></a>00395         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00396"></a>00396     }
+<a name="l00397"></a>00397   }
+<a name="l00398"></a>00398   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00399"></a>00399 }
+<a name="l00400"></a>00400 <span class="comment"></span>
+<a name="l00401"></a>00401 <span class="comment">/// ProcessMI - Examine the instruction for potentai LICM candidate. Also</span>
+<a name="l00402"></a>00402 <span class="comment">/// gather register def and frame object update information.</span>
+<a name="l00403"></a>00403 <span class="comment"></span><span class="keywordtype">void</span> MachineLICM::ProcessMI(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>,
+<a name="l00404"></a>00404                             <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> &PhysRegDefs,
+<a name="l00405"></a>00405                             <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> &PhysRegClobbers,
+<a name="l00406"></a>00406                             <a class="code" href="classllvm_1_1SmallSet.html">SmallSet<int, 32></a> &StoredFIs,
+<a name="l00407"></a>00407                             <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<CandidateInfo, 32></a> &Candidates) {
+<a name="l00408"></a>00408   <span class="keywordtype">bool</span> RuledOut = <span class="keyword">false</span>;
+<a name="l00409"></a>00409   <span class="keywordtype">bool</span> HasNonInvariantUse = <span class="keyword">false</span>;
+<a name="l00410"></a>00410   <span class="keywordtype">unsigned</span> <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5aceb138f68fe183995736614928e3394a">Def</a> = 0;
+<a name="l00411"></a>00411   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a7b5fe96d88954efc855e6c466207e535">getNumOperands</a>(); i != e; ++i) {
+<a name="l00412"></a>00412     <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i);
+<a name="l00413"></a>00413     <span class="keywordflow">if</span> (MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab0d5ec413fa43a1e470dafb6cafda9b5" title="isFI - Tests if this is a MO_FrameIndex operand.">isFI</a>()) {
+<a name="l00414"></a>00414       <span class="comment">// Remember if the instruction stores to the frame index.</span>
+<a name="l00415"></a>00415       <span class="keywordtype">int</span> FI = MO.<a class="code" href="classllvm_1_1MachineOperand.html#ac9485ae7d6fedd71ad4460f72c799c98">getIndex</a>();
+<a name="l00416"></a>00416       <span class="keywordflow">if</span> (!StoredFIs.<a class="code" href="classllvm_1_1SmallSet.html#ab28aa342862f6d16361be514fd98c22e" title="count - Return true if the element is in the set.">count</a>(FI) &&
+<a name="l00417"></a>00417           MFI->isSpillSlotObjectIndex(FI) &&
+<a name="l00418"></a>00418           <a class="code" href="MachineLICM_8cpp.html#ab291fb9293f91eda708874e0e75e815e">InstructionStoresToFI</a>(MI, FI))
+<a name="l00419"></a>00419         StoredFIs.<a class="code" href="classllvm_1_1SmallSet.html#a8d8348060ccdeeba13fb8bc651dfbf82" title="insert - Insert an element into the set if it isn't already there.">insert</a>(FI);
+<a name="l00420"></a>00420       HasNonInvariantUse = <span class="keyword">true</span>;
+<a name="l00421"></a>00421       <span class="keywordflow">continue</span>;
+<a name="l00422"></a>00422     }
+<a name="l00423"></a>00423 
+<a name="l00424"></a>00424     <span class="comment">// We can't hoist an instruction defining a physreg that is clobbered in</span>
+<a name="l00425"></a>00425     <span class="comment">// the loop.</span>
+<a name="l00426"></a>00426     <span class="keywordflow">if</span> (MO.<a class="code" href="classllvm_1_1MachineOperand.html#a2c5eddfba64e7a44deba1b5a0d45a017" title="isRegMask - Tests if this is a MO_RegisterMask operand.">isRegMask</a>()) {
+<a name="l00427"></a>00427       PhysRegClobbers.<a class="code" href="classllvm_1_1BitVector.html#a8ed8d6c8b5f2e6f8afbabdcfaf40d6ff">setBitsNotInMask</a>(MO.<a class="code" href="classllvm_1_1MachineOperand.html#a5192a9fe4d860e2b97d4457fe4b1a036">getRegMask</a>());
+<a name="l00428"></a>00428       <span class="keywordflow">continue</span>;
+<a name="l00429"></a>00429     }
+<a name="l00430"></a>00430 
+<a name="l00431"></a>00431     <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>())
+<a name="l00432"></a>00432       <span class="keywordflow">continue</span>;
+<a name="l00433"></a>00433     <span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a> = MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l00434"></a>00434     <span class="keywordflow">if</span> (!Reg)
+<a name="l00435"></a>00435       <span class="keywordflow">continue</span>;
+<a name="l00436"></a>00436     assert(<a class="code" href="classllvm_1_1TargetRegisterInfo.html#a055858b14215864ed367a8db6c19d6f6">TargetRegisterInfo::isPhysicalRegister</a>(Reg) &&
+<a name="l00437"></a>00437            <span class="stringliteral">"Not expecting virtual register!"</span>);
+<a name="l00438"></a>00438 
+<a name="l00439"></a>00439     <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#a8de7d5cf38939044471c6ee60a01a3df">isDef</a>()) {
+<a name="l00440"></a>00440       <span class="keywordflow">if</span> (Reg && (PhysRegDefs.<a class="code" href="classllvm_1_1BitVector.html#a20b6ba858cb2bb6d8d7fa553025c1f61">test</a>(Reg) || PhysRegClobbers.<a class="code" href="classllvm_1_1BitVector.html#a20b6ba858cb2bb6d8d7fa553025c1f61">test</a>(Reg)))
+<a name="l00441"></a>00441         <span class="comment">// If it's using a non-loop-invariant register, then it's obviously not</span>
+<a name="l00442"></a>00442         <span class="comment">// safe to hoist.</span>
+<a name="l00443"></a>00443         HasNonInvariantUse = <span class="keyword">true</span>;
+<a name="l00444"></a>00444       <span class="keywordflow">continue</span>;
+<a name="l00445"></a>00445     }
+<a name="l00446"></a>00446 
+<a name="l00447"></a>00447     <span class="keywordflow">if</span> (MO.<a class="code" href="classllvm_1_1MachineOperand.html#a40a5d6e03f5bfd15839355a7c39ab3a0">isImplicit</a>()) {
+<a name="l00448"></a>00448       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MCRegAliasIterator.html">MCRegAliasIterator</a> AI(Reg, TRI, <span class="keyword">true</span>); AI.<a class="code" href="classllvm_1_1MCRegisterInfo_1_1DiffListIterator.html#abccd358b92366e5284e7e674e86b241f" title="isValid - returns true if this iterator is not yet at the end.">isValid</a>(); ++AI)
+<a name="l00449"></a>00449         PhysRegClobbers.<a class="code" href="classllvm_1_1BitVector.html#a1964207fae81f04966b2a9dcfc21cf7b">set</a>(*AI);
+<a name="l00450"></a>00450       <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#a196420aa839c2b21f42c4bf5c36df437">isDead</a>())
+<a name="l00451"></a>00451         <span class="comment">// Non-dead implicit def? This cannot be hoisted.</span>
+<a name="l00452"></a>00452         RuledOut = <span class="keyword">true</span>;
+<a name="l00453"></a>00453       <span class="comment">// No need to check if a dead implicit def is also defined by</span>
+<a name="l00454"></a>00454       <span class="comment">// another instruction.</span>
+<a name="l00455"></a>00455       <span class="keywordflow">continue</span>;
+<a name="l00456"></a>00456     }
+<a name="l00457"></a>00457 
+<a name="l00458"></a>00458     <span class="comment">// FIXME: For now, avoid instructions with multiple defs, unless</span>
+<a name="l00459"></a>00459     <span class="comment">// it's a dead implicit def.</span>
+<a name="l00460"></a>00460     <span class="keywordflow">if</span> (Def)
+<a name="l00461"></a>00461       RuledOut = <span class="keyword">true</span>;
+<a name="l00462"></a>00462     <span class="keywordflow">else</span>
+<a name="l00463"></a>00463       Def = <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>;
+<a name="l00464"></a>00464 
+<a name="l00465"></a>00465     <span class="comment">// If we have already seen another instruction that defines the same</span>
+<a name="l00466"></a>00466     <span class="comment">// register, then this is not safe.  Two defs is indicated by setting a</span>
+<a name="l00467"></a>00467     <span class="comment">// PhysRegClobbers bit.</span>
+<a name="l00468"></a>00468     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MCRegAliasIterator.html">MCRegAliasIterator</a> AS(Reg, TRI, <span class="keyword">true</span>); AS.<a class="code" href="classllvm_1_1MCRegisterInfo_1_1DiffListIterator.html#abccd358b92366e5284e7e674e86b241f" title="isValid - returns true if this iterator is not yet at the end.">isValid</a>(); ++AS) {
+<a name="l00469"></a>00469       <span class="keywordflow">if</span> (PhysRegDefs.<a class="code" href="classllvm_1_1BitVector.html#a20b6ba858cb2bb6d8d7fa553025c1f61">test</a>(*AS))
+<a name="l00470"></a>00470         PhysRegClobbers.<a class="code" href="classllvm_1_1BitVector.html#a1964207fae81f04966b2a9dcfc21cf7b">set</a>(*AS);
+<a name="l00471"></a>00471       <span class="keywordflow">if</span> (PhysRegClobbers.<a class="code" href="classllvm_1_1BitVector.html#a20b6ba858cb2bb6d8d7fa553025c1f61">test</a>(*AS))
+<a name="l00472"></a>00472         <span class="comment">// MI defined register is seen defined by another instruction in</span>
+<a name="l00473"></a>00473         <span class="comment">// the loop, it cannot be a LICM candidate.</span>
+<a name="l00474"></a>00474         RuledOut = <span class="keyword">true</span>;
+<a name="l00475"></a>00475       PhysRegDefs.<a class="code" href="classllvm_1_1BitVector.html#a1964207fae81f04966b2a9dcfc21cf7b">set</a>(*AS);
+<a name="l00476"></a>00476     }
+<a name="l00477"></a>00477   }
+<a name="l00478"></a>00478 
+<a name="l00479"></a>00479   <span class="comment">// Only consider reloads for now and remats which do not have register</span>
+<a name="l00480"></a>00480   <span class="comment">// operands. FIXME: Consider unfold load folding instructions.</span>
+<a name="l00481"></a>00481   <span class="keywordflow">if</span> (Def && !RuledOut) {
+<a name="l00482"></a>00482     <span class="keywordtype">int</span> FI = INT_MIN;
+<a name="l00483"></a>00483     <span class="keywordflow">if</span> ((!HasNonInvariantUse && IsLICMCandidate(*MI)) ||
+<a name="l00484"></a>00484         (TII->isLoadFromStackSlot(MI, FI) && MFI->isSpillSlotObjectIndex(FI)))
+<a name="l00485"></a>00485       Candidates.<a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(CandidateInfo(MI, Def, FI));
+<a name="l00486"></a>00486   }
+<a name="l00487"></a>00487 }
+<a name="l00488"></a>00488 <span class="comment"></span>
+<a name="l00489"></a>00489 <span class="comment">/// HoistRegionPostRA - Walk the specified region of the CFG and hoist loop</span>
+<a name="l00490"></a>00490 <span class="comment">/// invariants out to the preheader.</span>
+<a name="l00491"></a>00491 <span class="comment"></span><span class="keywordtype">void</span> MachineLICM::HoistRegionPostRA() {
+<a name="l00492"></a>00492   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Preheader = getCurPreheader();
+<a name="l00493"></a>00493   <span class="keywordflow">if</span> (!Preheader)
+<a name="l00494"></a>00494     <span class="keywordflow">return</span>;
+<a name="l00495"></a>00495 
+<a name="l00496"></a>00496   <span class="keywordtype">unsigned</span> NumRegs = TRI->getNumRegs();
+<a name="l00497"></a>00497   <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> PhysRegDefs(NumRegs); <span class="comment">// Regs defined once in the loop.</span>
+<a name="l00498"></a>00498   <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> PhysRegClobbers(NumRegs); <span class="comment">// Regs defined more than once.</span>
+<a name="l00499"></a>00499 
+<a name="l00500"></a>00500   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<CandidateInfo, 32></a> Candidates;
+<a name="l00501"></a>00501   <a class="code" href="classllvm_1_1SmallSet.html">SmallSet<int, 32></a> StoredFIs;
+<a name="l00502"></a>00502 
+<a name="l00503"></a>00503   <span class="comment">// Walk the entire region, count number of defs for each register, and</span>
+<a name="l00504"></a>00504   <span class="comment">// collect potential LICM candidates.</span>
+<a name="l00505"></a>00505   <span class="keyword">const</span> std::vector<MachineBasicBlock*> Blocks = CurLoop->getBlocks();
+<a name="l00506"></a>00506   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Blocks.size(); i != e; ++i) {
+<a name="l00507"></a>00507     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB = Blocks[i];
+<a name="l00508"></a>00508 
+<a name="l00509"></a>00509     <span class="comment">// If the header of the loop containing this basic block is a landing pad,</span>
+<a name="l00510"></a>00510     <span class="comment">// then don't try to hoist instructions out of this loop.</span>
+<a name="l00511"></a>00511     <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> *ML = MLI->getLoopFor(BB);
+<a name="l00512"></a>00512     <span class="keywordflow">if</span> (ML && ML-><a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>()-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a3f522ae33859d693fb5781efe690e9e6">isLandingPad</a>()) <span class="keywordflow">continue</span>;
+<a name="l00513"></a>00513 
+<a name="l00514"></a>00514     <span class="comment">// Conservatively treat live-in's as an external def.</span>
+<a name="l00515"></a>00515     <span class="comment">// FIXME: That means a reload that're reused in successor block(s) will not</span>
+<a name="l00516"></a>00516     <span class="comment">// be LICM'ed.</span>
+<a name="l00517"></a>00517     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#a7bab64c02d740522f94f5f45959a22fc">MachineBasicBlock::livein_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6833d4f80b7e44f505b2184b04ea2693">livein_begin</a>(),
+<a name="l00518"></a>00518            E = BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#aa314325c7062fd067a3c0b9339aa8ea6">livein_end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00519"></a>00519       <span class="keywordtype">unsigned</span> Reg = *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00520"></a>00520       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MCRegAliasIterator.html">MCRegAliasIterator</a> AI(Reg, TRI, <span class="keyword">true</span>); AI.<a class="code" href="classllvm_1_1MCRegisterInfo_1_1DiffListIterator.html#abccd358b92366e5284e7e674e86b241f" title="isValid - returns true if this iterator is not yet at the end.">isValid</a>(); ++AI)
+<a name="l00521"></a>00521         PhysRegDefs.<a class="code" href="classllvm_1_1BitVector.html#a1964207fae81f04966b2a9dcfc21cf7b">set</a>(*AI);
+<a name="l00522"></a>00522     }
+<a name="l00523"></a>00523 
+<a name="l00524"></a>00524     SpeculationState = SpeculateUnknown;
+<a name="l00525"></a>00525     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a>
+<a name="l00526"></a>00526            MII = BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ab2d91e7bec944efcbc39d8e30644f111">begin</a>(), E = BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#acbc921830578e2741be6549db716c0ce">end</a>(); MII != E; ++MII) {
+<a name="l00527"></a>00527       <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI = &*MII;
+<a name="l00528"></a>00528       ProcessMI(MI, PhysRegDefs, PhysRegClobbers, StoredFIs, Candidates);
+<a name="l00529"></a>00529     }
+<a name="l00530"></a>00530   }
+<a name="l00531"></a>00531 
+<a name="l00532"></a>00532   <span class="comment">// Gather the registers read / clobbered by the terminator.</span>
+<a name="l00533"></a>00533   <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> TermRegs(NumRegs);
+<a name="l00534"></a>00534   <a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> TI = Preheader-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a7f0521fa2de44271fd4b909ea7351ef3">getFirstTerminator</a>();
+<a name="l00535"></a>00535   <span class="keywordflow">if</span> (TI != Preheader-><a class="code" href="classllvm_1_1MachineBasicBlock.html#acbc921830578e2741be6549db716c0ce">end</a>()) {
+<a name="l00536"></a>00536     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = TI->getNumOperands(); i != e; ++i) {
+<a name="l00537"></a>00537       <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO = TI->getOperand(i);
+<a name="l00538"></a>00538       <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>())
+<a name="l00539"></a>00539         <span class="keywordflow">continue</span>;
+<a name="l00540"></a>00540       <span class="keywordtype">unsigned</span> Reg = MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l00541"></a>00541       <span class="keywordflow">if</span> (!Reg)
+<a name="l00542"></a>00542         <span class="keywordflow">continue</span>;
+<a name="l00543"></a>00543       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MCRegAliasIterator.html">MCRegAliasIterator</a> AI(Reg, TRI, <span class="keyword">true</span>); AI.<a class="code" href="classllvm_1_1MCRegisterInfo_1_1DiffListIterator.html#abccd358b92366e5284e7e674e86b241f" title="isValid - returns true if this iterator is not yet at the end.">isValid</a>(); ++AI)
+<a name="l00544"></a>00544         TermRegs.set(*AI);
+<a name="l00545"></a>00545     }
+<a name="l00546"></a>00546   }
+<a name="l00547"></a>00547 
+<a name="l00548"></a>00548   <span class="comment">// Now evaluate whether the potential candidates qualify.</span>
+<a name="l00549"></a>00549   <span class="comment">// 1. Check if the candidate defined register is defined by another</span>
+<a name="l00550"></a>00550   <span class="comment">//    instruction in the loop.</span>
+<a name="l00551"></a>00551   <span class="comment">// 2. If the candidate is a load from stack slot (always true for now),</span>
+<a name="l00552"></a>00552   <span class="comment">//    check if the slot is stored anywhere in the loop.</span>
+<a name="l00553"></a>00553   <span class="comment">// 3. Make sure candidate def should not clobber</span>
+<a name="l00554"></a>00554   <span class="comment">//    registers read by the terminator. Similarly its def should not be</span>
+<a name="l00555"></a>00555   <span class="comment">//    clobbered by the terminator.</span>
+<a name="l00556"></a>00556   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Candidates.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>(); i != e; ++i) {
+<a name="l00557"></a>00557     <span class="keywordflow">if</span> (Candidates[i].FI != INT_MIN &&
+<a name="l00558"></a>00558         StoredFIs.<a class="code" href="classllvm_1_1SmallSet.html#ab28aa342862f6d16361be514fd98c22e" title="count - Return true if the element is in the set.">count</a>(Candidates[i].FI))
+<a name="l00559"></a>00559       <span class="keywordflow">continue</span>;
+<a name="l00560"></a>00560 
+<a name="l00561"></a>00561     <span class="keywordtype">unsigned</span> Def = Candidates[i].Def;
+<a name="l00562"></a>00562     <span class="keywordflow">if</span> (!PhysRegClobbers.<a class="code" href="classllvm_1_1BitVector.html#a20b6ba858cb2bb6d8d7fa553025c1f61">test</a>(Def) && !TermRegs.test(Def)) {
+<a name="l00563"></a>00563       <span class="keywordtype">bool</span> Safe = <span class="keyword">true</span>;
+<a name="l00564"></a>00564       <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI = Candidates[i].MI;
+<a name="l00565"></a>00565       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> j = 0, ee = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a7b5fe96d88954efc855e6c466207e535">getNumOperands</a>(); j != ee; ++j) {
+<a name="l00566"></a>00566         <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(j);
+<a name="l00567"></a>00567         <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>() || MO.<a class="code" href="classllvm_1_1MachineOperand.html#a8de7d5cf38939044471c6ee60a01a3df">isDef</a>() || !MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>())
+<a name="l00568"></a>00568           <span class="keywordflow">continue</span>;
+<a name="l00569"></a>00569         <span class="keywordtype">unsigned</span> Reg = MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l00570"></a>00570         <span class="keywordflow">if</span> (PhysRegDefs.<a class="code" href="classllvm_1_1BitVector.html#a20b6ba858cb2bb6d8d7fa553025c1f61">test</a>(Reg) ||
+<a name="l00571"></a>00571             PhysRegClobbers.<a class="code" href="classllvm_1_1BitVector.html#a20b6ba858cb2bb6d8d7fa553025c1f61">test</a>(Reg)) {
+<a name="l00572"></a>00572           <span class="comment">// If it's using a non-loop-invariant register, then it's obviously</span>
+<a name="l00573"></a>00573           <span class="comment">// not safe to hoist.</span>
+<a name="l00574"></a>00574           Safe = <span class="keyword">false</span>;
+<a name="l00575"></a>00575           <span class="keywordflow">break</span>;
+<a name="l00576"></a>00576         }
+<a name="l00577"></a>00577       }
+<a name="l00578"></a>00578       <span class="keywordflow">if</span> (Safe)
+<a name="l00579"></a>00579         HoistPostRA(MI, Candidates[i].Def);
+<a name="l00580"></a>00580     }
+<a name="l00581"></a>00581   }
+<a name="l00582"></a>00582 }
+<a name="l00583"></a>00583 <span class="comment"></span>
+<a name="l00584"></a>00584 <span class="comment">/// AddToLiveIns - Add register 'Reg' to the livein sets of BBs in the current</span>
+<a name="l00585"></a>00585 <span class="comment">/// loop, and make sure it is not killed by any instructions in the loop.</span>
+<a name="l00586"></a>00586 <span class="comment"></span><span class="keywordtype">void</span> MachineLICM::AddToLiveIns(<span class="keywordtype">unsigned</span> Reg) {
+<a name="l00587"></a>00587   <span class="keyword">const</span> std::vector<MachineBasicBlock*> Blocks = CurLoop->getBlocks();
+<a name="l00588"></a>00588   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Blocks.size(); i != e; ++i) {
+<a name="l00589"></a>00589     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB = Blocks[i];
+<a name="l00590"></a>00590     <span class="keywordflow">if</span> (!BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a183fc29cc1ccec18f5e9e4122a4aab1c">isLiveIn</a>(Reg))
+<a name="l00591"></a>00591       BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ae26efdb76d5c56388c65dc5b02a2ae6f">addLiveIn</a>(Reg);
+<a name="l00592"></a>00592     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a>
+<a name="l00593"></a>00593            MII = BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ab2d91e7bec944efcbc39d8e30644f111">begin</a>(), E = BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#acbc921830578e2741be6549db716c0ce">end</a>(); MII != E; ++MII) {
+<a name="l00594"></a>00594       <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI = &*MII;
+<a name="l00595"></a>00595       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a7b5fe96d88954efc855e6c466207e535">getNumOperands</a>(); i != e; ++i) {
+<a name="l00596"></a>00596         <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i);
+<a name="l00597"></a>00597         <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>() || !MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>() || MO.<a class="code" href="classllvm_1_1MachineOperand.html#a8de7d5cf38939044471c6ee60a01a3df">isDef</a>()) <span class="keywordflow">continue</span>;
+<a name="l00598"></a>00598         <span class="keywordflow">if</span> (MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>() == Reg || TRI->isSuperRegister(Reg, MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>()))
+<a name="l00599"></a>00599           MO.<a class="code" href="classllvm_1_1MachineOperand.html#a8a82683fccdef8a5ef772ef03277aee7">setIsKill</a>(<span class="keyword">false</span>);
+<a name="l00600"></a>00600       }
+<a name="l00601"></a>00601     }
+<a name="l00602"></a>00602   }
+<a name="l00603"></a>00603 }
+<a name="l00604"></a>00604 <span class="comment"></span>
+<a name="l00605"></a>00605 <span class="comment">/// HoistPostRA - When an instruction is found to only use loop invariant</span>
+<a name="l00606"></a>00606 <span class="comment">/// operands that is safe to hoist, this instruction is called to do the</span>
+<a name="l00607"></a>00607 <span class="comment">/// dirty work.</span>
+<a name="l00608"></a>00608 <span class="comment"></span><span class="keywordtype">void</span> MachineLICM::HoistPostRA(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI, <span class="keywordtype">unsigned</span> Def) {
+<a name="l00609"></a>00609   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Preheader = getCurPreheader();
+<a name="l00610"></a>00610 
+<a name="l00611"></a>00611   <span class="comment">// Now move the instructions to the predecessor, inserting it before any</span>
+<a name="l00612"></a>00612   <span class="comment">// terminator instructions.</span>
+<a name="l00613"></a>00613   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Hoisting to BB#"</span> << Preheader-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6acda287e5c19ffb173b0bf8f1dd9c5e">getNumber</a>() << <span class="stringliteral">" from BB#"</span>
+<a name="l00614"></a>00614                << MI-><a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>()-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6acda287e5c19ffb173b0bf8f1dd9c5e">getNumber</a>() << <span class="stringliteral">": "</span> << *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>);
+<a name="l00615"></a>00615 
+<a name="l00616"></a>00616   <span class="comment">// Splice the instruction to the preheader.</span>
+<a name="l00617"></a>00617   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB = MI-><a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>();
+<a name="l00618"></a>00618   Preheader-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a4caec104f2ab9fe27e8fb0da33497635">splice</a>(Preheader-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a7f0521fa2de44271fd4b909ea7351ef3">getFirstTerminator</a>(), MBB, <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>);
+<a name="l00619"></a>00619 
+<a name="l00620"></a>00620   <span class="comment">// Add register to livein list to all the BBs in the current loop since a</span>
+<a name="l00621"></a>00621   <span class="comment">// loop invariant must be kept live throughout the whole loop. This is</span>
+<a name="l00622"></a>00622   <span class="comment">// important to ensure later passes do not scavenge the def register.</span>
+<a name="l00623"></a>00623   AddToLiveIns(Def);
+<a name="l00624"></a>00624 
+<a name="l00625"></a>00625   ++NumPostRAHoisted;
+<a name="l00626"></a>00626   Changed = <span class="keyword">true</span>;
+<a name="l00627"></a>00627 }
+<a name="l00628"></a>00628 
+<a name="l00629"></a>00629 <span class="comment">// IsGuaranteedToExecute - Check if this mbb is guaranteed to execute.</span>
+<a name="l00630"></a>00630 <span class="comment">// If not then a load from this mbb may not be safe to hoist.</span>
+<a name="l00631"></a>00631 <span class="keywordtype">bool</span> MachineLICM::IsGuaranteedToExecute(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB) {
+<a name="l00632"></a>00632   <span class="keywordflow">if</span> (SpeculationState != SpeculateUnknown)
+<a name="l00633"></a>00633     <span class="keywordflow">return</span> SpeculationState == SpeculateFalse;
+<a name="l00634"></a>00634 
+<a name="l00635"></a>00635   <span class="keywordflow">if</span> (BB != CurLoop->getHeader()) {
+<a name="l00636"></a>00636     <span class="comment">// Check loop exiting blocks.</span>
+<a name="l00637"></a>00637     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineBasicBlock*, 8></a> CurrentLoopExitingBlocks;
+<a name="l00638"></a>00638     CurLoop->getExitingBlocks(CurrentLoopExitingBlocks);
+<a name="l00639"></a>00639     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = CurrentLoopExitingBlocks.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>(); i != e; ++i)
+<a name="l00640"></a>00640       <span class="keywordflow">if</span> (!DT->dominates(BB, CurrentLoopExitingBlocks[i])) {
+<a name="l00641"></a>00641         SpeculationState = SpeculateTrue;
+<a name="l00642"></a>00642         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00643"></a>00643       }
+<a name="l00644"></a>00644   }
+<a name="l00645"></a>00645 
+<a name="l00646"></a>00646   SpeculationState = SpeculateFalse;
+<a name="l00647"></a>00647   <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00648"></a>00648 }
+<a name="l00649"></a>00649 
+<a name="l00650"></a>00650 <span class="keywordtype">void</span> MachineLICM::EnterScope(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB) {
+<a name="l00651"></a>00651   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Entering: "</span> << MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a454838c989e99a86bd804e056c367bd9">getName</a>() << <span class="charliteral">'\n'</span>);
+<a name="l00652"></a>00652 
+<a name="l00653"></a>00653   <span class="comment">// Remember livein register pressure.</span>
+<a name="l00654"></a>00654   BackTrace.push_back(<a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>);
+<a name="l00655"></a>00655 }
+<a name="l00656"></a>00656 
+<a name="l00657"></a>00657 <span class="keywordtype">void</span> MachineLICM::ExitScope(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB) {
+<a name="l00658"></a>00658   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Exiting: "</span> << MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a454838c989e99a86bd804e056c367bd9">getName</a>() << <span class="charliteral">'\n'</span>);
+<a name="l00659"></a>00659   BackTrace.pop_back();
+<a name="l00660"></a>00660 }
+<a name="l00661"></a>00661 <span class="comment"></span>
+<a name="l00662"></a>00662 <span class="comment">/// ExitScopeIfDone - Destroy scope for the MBB that corresponds to the given</span>
+<a name="l00663"></a>00663 <span class="comment">/// dominator tree node if its a leaf or all of its children are done. Walk</span>
+<a name="l00664"></a>00664 <span class="comment">/// up the dominator tree to destroy ancestors which are now done.</span>
+<a name="l00665"></a>00665 <span class="comment"></span><span class="keywordtype">void</span> MachineLICM::ExitScopeIfDone(<a class="code" href="classllvm_1_1DomTreeNodeBase.html">MachineDomTreeNode</a> *Node,
+<a name="l00666"></a>00666                 <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<MachineDomTreeNode*, unsigned></a> &OpenChildren,
+<a name="l00667"></a>00667                 <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<MachineDomTreeNode*, MachineDomTreeNode*></a> &ParentMap) {
+<a name="l00668"></a>00668   <span class="keywordflow">if</span> (OpenChildren[Node])
+<a name="l00669"></a>00669     <span class="keywordflow">return</span>;
+<a name="l00670"></a>00670 
+<a name="l00671"></a>00671   <span class="comment">// Pop scope.</span>
+<a name="l00672"></a>00672   ExitScope(Node->getBlock());
+<a name="l00673"></a>00673 
+<a name="l00674"></a>00674   <span class="comment">// Now traverse upwards to pop ancestors whose offsprings are all done.</span>
+<a name="l00675"></a>00675   <span class="keywordflow">while</span> (<a class="code" href="classllvm_1_1DomTreeNodeBase.html">MachineDomTreeNode</a> *Parent = ParentMap[Node]) {
+<a name="l00676"></a>00676     <span class="keywordtype">unsigned</span> Left = --OpenChildren[Parent];
+<a name="l00677"></a>00677     <span class="keywordflow">if</span> (Left != 0)
+<a name="l00678"></a>00678       <span class="keywordflow">break</span>;
+<a name="l00679"></a>00679     ExitScope(Parent->getBlock());
+<a name="l00680"></a>00680     Node = Parent;
+<a name="l00681"></a>00681   }
+<a name="l00682"></a>00682 }
+<a name="l00683"></a>00683 <span class="comment"></span>
+<a name="l00684"></a>00684 <span class="comment">/// HoistOutOfLoop - Walk the specified loop in the CFG (defined by all</span>
+<a name="l00685"></a>00685 <span class="comment">/// blocks dominated by the specified header block, and that are in the</span>
+<a name="l00686"></a>00686 <span class="comment">/// current loop) in depth first order w.r.t the DominatorTree. This allows</span>
+<a name="l00687"></a>00687 <span class="comment">/// us to visit definitions before uses, allowing us to hoist a loop body in</span>
+<a name="l00688"></a>00688 <span class="comment">/// one pass without iteration.</span>
+<a name="l00689"></a>00689 <span class="comment">///</span>
+<a name="l00690"></a>00690 <span class="comment"></span><span class="keywordtype">void</span> MachineLICM::HoistOutOfLoop(<a class="code" href="classllvm_1_1DomTreeNodeBase.html">MachineDomTreeNode</a> *HeaderN) {
+<a name="l00691"></a>00691   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineDomTreeNode*, 32></a> Scopes;
+<a name="l00692"></a>00692   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineDomTreeNode*, 8></a> WorkList;
+<a name="l00693"></a>00693   <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<MachineDomTreeNode*, MachineDomTreeNode*></a> ParentMap;
+<a name="l00694"></a>00694   <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<MachineDomTreeNode*, unsigned></a> OpenChildren;
+<a name="l00695"></a>00695 
+<a name="l00696"></a>00696   <span class="comment">// Perform a DFS walk to determine the order of visit.</span>
+<a name="l00697"></a>00697   WorkList.<a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(HeaderN);
+<a name="l00698"></a>00698   <span class="keywordflow">do</span> {
+<a name="l00699"></a>00699     <a class="code" href="classllvm_1_1DomTreeNodeBase.html">MachineDomTreeNode</a> *Node = WorkList.<a class="code" href="classllvm_1_1SmallVectorImpl.html#a0c8ffe664a36e30d49c84d0aded2fe08">pop_back_val</a>();
+<a name="l00700"></a>00700     assert(Node != 0 && <span class="stringliteral">"Null dominator tree node?"</span>);
+<a name="l00701"></a>00701     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB = Node-><a class="code" href="classllvm_1_1DomTreeNodeBase.html#a96fd2f0087c41942dd2618ff6e1b8640">getBlock</a>();
+<a name="l00702"></a>00702 
+<a name="l00703"></a>00703     <span class="comment">// If the header of the loop containing this basic block is a landing pad,</span>
+<a name="l00704"></a>00704     <span class="comment">// then don't try to hoist instructions out of this loop.</span>
+<a name="l00705"></a>00705     <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> *ML = MLI->getLoopFor(BB);
+<a name="l00706"></a>00706     <span class="keywordflow">if</span> (ML && ML-><a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>()-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a3f522ae33859d693fb5781efe690e9e6">isLandingPad</a>())
+<a name="l00707"></a>00707       <span class="keywordflow">continue</span>;
+<a name="l00708"></a>00708 
+<a name="l00709"></a>00709     <span class="comment">// If this subregion is not in the top level loop at all, exit.</span>
+<a name="l00710"></a>00710     <span class="keywordflow">if</span> (!CurLoop->contains(BB))
+<a name="l00711"></a>00711       <span class="keywordflow">continue</span>;
+<a name="l00712"></a>00712 
+<a name="l00713"></a>00713     Scopes.<a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(Node);
+<a name="l00714"></a>00714     <span class="keyword">const</span> std::vector<MachineDomTreeNode*> &Children = Node-><a class="code" href="classllvm_1_1DomTreeNodeBase.html#afada34cd832fdc73959f84d4769ab837">getChildren</a>();
+<a name="l00715"></a>00715     <span class="keywordtype">unsigned</span> NumChildren = Children.size();
+<a name="l00716"></a>00716 
+<a name="l00717"></a>00717     <span class="comment">// Don't hoist things out of a large switch statement.  This often causes</span>
+<a name="l00718"></a>00718     <span class="comment">// code to be hoisted that wasn't going to be executed, and increases</span>
+<a name="l00719"></a>00719     <span class="comment">// register pressure in a situation where it's likely to matter.</span>
+<a name="l00720"></a>00720     <span class="keywordflow">if</span> (BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a9ac05913a143322136efcad10ed7548c">succ_size</a>() >= 25)
+<a name="l00721"></a>00721       NumChildren = 0;
+<a name="l00722"></a>00722 
+<a name="l00723"></a>00723     OpenChildren[Node] = NumChildren;
+<a name="l00724"></a>00724     <span class="comment">// Add children in reverse order as then the next popped worklist node is</span>
+<a name="l00725"></a>00725     <span class="comment">// the first child of this node.  This means we ultimately traverse the</span>
+<a name="l00726"></a>00726     <span class="comment">// DOM tree in exactly the same order as if we'd recursed.</span>
+<a name="l00727"></a>00727     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = (<span class="keywordtype">int</span>)NumChildren-1; i >= 0; --i) {
+<a name="l00728"></a>00728       <a class="code" href="classllvm_1_1DomTreeNodeBase.html">MachineDomTreeNode</a> *Child = Children[i];
+<a name="l00729"></a>00729       ParentMap[Child] = Node;
+<a name="l00730"></a>00730       WorkList.<a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(Child);
+<a name="l00731"></a>00731     }
+<a name="l00732"></a>00732   } <span class="keywordflow">while</span> (!WorkList.<a class="code" href="classllvm_1_1SmallVectorBase.html#afdecfccba9b1fd8c9fd8eb27ae69e9a0">empty</a>());
+<a name="l00733"></a>00733 
+<a name="l00734"></a>00734   <span class="keywordflow">if</span> (Scopes.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>() != 0) {
+<a name="l00735"></a>00735     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Preheader = getCurPreheader();
+<a name="l00736"></a>00736     <span class="keywordflow">if</span> (!Preheader)
+<a name="l00737"></a>00737       <span class="keywordflow">return</span>;
+<a name="l00738"></a>00738 
+<a name="l00739"></a>00739     <span class="comment">// Compute registers which are livein into the loop headers.</span>
+<a name="l00740"></a>00740     RegSeen.clear();
+<a name="l00741"></a>00741     BackTrace.clear();
+<a name="l00742"></a>00742     InitRegPressure(Preheader);
+<a name="l00743"></a>00743   }
+<a name="l00744"></a>00744 
+<a name="l00745"></a>00745   <span class="comment">// Now perform LICM.</span>
+<a name="l00746"></a>00746   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Scopes.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>(); i != e; ++i) {
+<a name="l00747"></a>00747     <a class="code" href="classllvm_1_1DomTreeNodeBase.html">MachineDomTreeNode</a> *Node = Scopes[i];
+<a name="l00748"></a>00748     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB = Node-><a class="code" href="classllvm_1_1DomTreeNodeBase.html#a96fd2f0087c41942dd2618ff6e1b8640">getBlock</a>();
+<a name="l00749"></a>00749 
+<a name="l00750"></a>00750     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Preheader = getCurPreheader();
+<a name="l00751"></a>00751     <span class="keywordflow">if</span> (!Preheader)
+<a name="l00752"></a>00752       <span class="keywordflow">continue</span>;
+<a name="l00753"></a>00753 
+<a name="l00754"></a>00754     EnterScope(MBB);
+<a name="l00755"></a>00755 
+<a name="l00756"></a>00756     <span class="comment">// Process the block</span>
+<a name="l00757"></a>00757     SpeculationState = SpeculateUnknown;
+<a name="l00758"></a>00758     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a>
+<a name="l00759"></a>00759          MII = MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ab2d91e7bec944efcbc39d8e30644f111">begin</a>(), E = MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#acbc921830578e2741be6549db716c0ce">end</a>(); MII != E; ) {
+<a name="l00760"></a>00760       <a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> NextMII = MII; ++NextMII;
+<a name="l00761"></a>00761       <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI = &*MII;
+<a name="l00762"></a>00762       <span class="keywordflow">if</span> (!Hoist(MI, Preheader))
+<a name="l00763"></a>00763         UpdateRegPressure(MI);
+<a name="l00764"></a>00764       MII = NextMII;
+<a name="l00765"></a>00765     }
+<a name="l00766"></a>00766 
+<a name="l00767"></a>00767     <span class="comment">// If it's a leaf node, it's done. Traverse upwards to pop ancestors.</span>
+<a name="l00768"></a>00768     ExitScopeIfDone(Node, OpenChildren, ParentMap);
+<a name="l00769"></a>00769   }
+<a name="l00770"></a>00770 }
+<a name="l00771"></a>00771 
+<a name="l00772"></a><a class="code" href="MachineLICM_8cpp.html#a3b6f8318fa97ea96ea30725e31e85fea">00772</a> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="MachineLICM_8cpp.html#a3b6f8318fa97ea96ea30725e31e85fea">isOperandKill</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO, <a class="code" href="classllvm_1_1MachineRegisterInfo.html">MachineRegisterInfo</a> *MRI) {
+<a name="l00773"></a>00773   <span class="keywordflow">return</span> MO.<a class="code" href="classllvm_1_1MachineOperand.html#aa21b508be8c212bdb0b28d734ab0ddb8">isKill</a>() || MRI-><a class="code" href="classllvm_1_1MachineRegisterInfo.html#a8be4959abd44b6fbd158dba0d7c315bc">hasOneNonDBGUse</a>(MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>());
+<a name="l00774"></a>00774 }
+<a name="l00775"></a>00775 <span class="comment"></span>
+<a name="l00776"></a>00776 <span class="comment">/// getRegisterClassIDAndCost - For a given MI, register, and the operand</span>
+<a name="l00777"></a>00777 <span class="comment">/// index, return the ID and cost of its representative register class.</span>
+<a name="l00778"></a>00778 <span class="comment"></span><span class="keywordtype">void</span>
+<a name="l00779"></a>00779 MachineLICM::getRegisterClassIDAndCost(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI,
+<a name="l00780"></a>00780                                        <span class="keywordtype">unsigned</span> Reg, <span class="keywordtype">unsigned</span> OpIdx,
+<a name="l00781"></a>00781                                        <span class="keywordtype">unsigned</span> &RCId, <span class="keywordtype">unsigned</span> &RCCost)<span class="keyword"> const </span>{
+<a name="l00782"></a>00782   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterClass.html">TargetRegisterClass</a> *RC = MRI->getRegClass(Reg);
+<a name="l00783"></a>00783   <a class="code" href="structllvm_1_1EVT.html">EVT</a> VT = *RC-><a class="code" href="classllvm_1_1TargetRegisterClass.html#af2ed3490fe47d88ef2d7f3edce4bf113">vt_begin</a>();
+<a name="l00784"></a>00784   <span class="keywordflow">if</span> (VT == <a class="code" href="classllvm_1_1MVT.html#afd69b4f2dff97a2d7c0192cc769ef50ca707dc1fd6a4179316ffa6ca2516e18dc">MVT::Untyped</a>) {
+<a name="l00785"></a>00785     RCId = RC-><a class="code" href="classllvm_1_1TargetRegisterClass.html#a25f9ba8e78af92ca34f9c1bba7881601">getID</a>();
+<a name="l00786"></a>00786     RCCost = 1;
+<a name="l00787"></a>00787   } <span class="keywordflow">else</span> {
+<a name="l00788"></a>00788     RCId = TLI->getRepRegClassFor(VT)->getID();
+<a name="l00789"></a>00789     RCCost = TLI->getRepRegClassCostFor(VT);
+<a name="l00790"></a>00790   }
+<a name="l00791"></a>00791 }
+<a name="l00792"></a>00792 <span class="comment"></span>
+<a name="l00793"></a>00793 <span class="comment">/// InitRegPressure - Find all virtual register references that are liveout of</span>
+<a name="l00794"></a>00794 <span class="comment">/// the preheader to initialize the starting "register pressure". Note this</span>
+<a name="l00795"></a>00795 <span class="comment">/// does not count live through (livein but not used) registers.</span>
+<a name="l00796"></a>00796 <span class="comment"></span><span class="keywordtype">void</span> MachineLICM::InitRegPressure(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB) {
+<a name="l00797"></a>00797   std::fill(<a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>.begin(), <a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>.end(), 0);
+<a name="l00798"></a>00798 
+<a name="l00799"></a>00799   <span class="comment">// If the preheader has only a single predecessor and it ends with a</span>
+<a name="l00800"></a>00800   <span class="comment">// fallthrough or an unconditional branch, then scan its predecessor for live</span>
+<a name="l00801"></a>00801   <span class="comment">// defs as well. This happens whenever the preheader is created by splitting</span>
+<a name="l00802"></a>00802   <span class="comment">// the critical edge from the loop predecessor to the loop header.</span>
+<a name="l00803"></a>00803   <span class="keywordflow">if</span> (BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ac9786455bc217ebd35377bb5d5ec8f20">pred_size</a>() == 1) {
+<a name="l00804"></a>00804     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *TBB = 0, *FBB = 0;
+<a name="l00805"></a>00805     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineOperand, 4></a> Cond;
+<a name="l00806"></a>00806     <span class="keywordflow">if</span> (!TII->AnalyzeBranch(*BB, TBB, FBB, Cond, <span class="keyword">false</span>) && Cond.<a class="code" href="classllvm_1_1SmallVectorBase.html#afdecfccba9b1fd8c9fd8eb27ae69e9a0">empty</a>())
+<a name="l00807"></a>00807       InitRegPressure(*BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ab644fcf07a4c2708333cf66276282357">pred_begin</a>());
+<a name="l00808"></a>00808   }
+<a name="l00809"></a>00809 
+<a name="l00810"></a>00810   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> MII = BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ab2d91e7bec944efcbc39d8e30644f111">begin</a>(), E = BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#acbc921830578e2741be6549db716c0ce">end</a>();
+<a name="l00811"></a>00811        MII != E; ++MII) {
+<a name="l00812"></a>00812     <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI = &*MII;
+<a name="l00813"></a>00813     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a803a7424877fd049679b9aa2f07597b5">getDesc</a>().<a class="code" href="classllvm_1_1MCInstrDesc.html#a55194ec3a1e49d04eab64e993e614246">getNumOperands</a>(); i != e; ++i) {
+<a name="l00814"></a>00814       <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i);
+<a name="l00815"></a>00815       <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>() || MO.<a class="code" href="classllvm_1_1MachineOperand.html#a40a5d6e03f5bfd15839355a7c39ab3a0">isImplicit</a>())
+<a name="l00816"></a>00816         <span class="keywordflow">continue</span>;
+<a name="l00817"></a>00817       <span class="keywordtype">unsigned</span> Reg = MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l00818"></a>00818       <span class="keywordflow">if</span> (!<a class="code" href="classllvm_1_1TargetRegisterInfo.html#ae62c5ea35b71f9020caa94340bc78f37">TargetRegisterInfo::isVirtualRegister</a>(Reg))
+<a name="l00819"></a>00819         <span class="keywordflow">continue</span>;
+<a name="l00820"></a>00820 
+<a name="l00821"></a>00821       <span class="keywordtype">bool</span> isNew = RegSeen.insert(Reg);
+<a name="l00822"></a>00822       <span class="keywordtype">unsigned</span> RCId, RCCost;
+<a name="l00823"></a>00823       getRegisterClassIDAndCost(MI, Reg, i, RCId, RCCost);
+<a name="l00824"></a>00824       <span class="keywordflow">if</span> (MO.<a class="code" href="classllvm_1_1MachineOperand.html#a8de7d5cf38939044471c6ee60a01a3df">isDef</a>())
+<a name="l00825"></a>00825         <a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>[RCId] += RCCost;
+<a name="l00826"></a>00826       <span class="keywordflow">else</span> {
+<a name="l00827"></a>00827         <span class="keywordtype">bool</span> isKill = <a class="code" href="MachineLICM_8cpp.html#a3b6f8318fa97ea96ea30725e31e85fea">isOperandKill</a>(MO, MRI);
+<a name="l00828"></a>00828         <span class="keywordflow">if</span> (isNew && !isKill)
+<a name="l00829"></a>00829           <span class="comment">// Haven't seen this, it must be a livein.</span>
+<a name="l00830"></a>00830           <a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>[RCId] += RCCost;
+<a name="l00831"></a>00831         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!isNew && isKill)
+<a name="l00832"></a>00832           <a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>[RCId] -= RCCost;
+<a name="l00833"></a>00833       }
+<a name="l00834"></a>00834     }
+<a name="l00835"></a>00835   }
+<a name="l00836"></a>00836 }
+<a name="l00837"></a>00837 <span class="comment"></span>
+<a name="l00838"></a>00838 <span class="comment">/// UpdateRegPressure - Update estimate of register pressure after the</span>
+<a name="l00839"></a>00839 <span class="comment">/// specified instruction.</span>
+<a name="l00840"></a>00840 <span class="comment"></span><span class="keywordtype">void</span> MachineLICM::UpdateRegPressure(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI) {
+<a name="l00841"></a>00841   <span class="keywordflow">if</span> (MI-><a class="code" href="classllvm_1_1MachineInstr.html#a0e15c0325463fc62bd16ccd9ec2b9ec5">isImplicitDef</a>())
+<a name="l00842"></a>00842     <span class="keywordflow">return</span>;
+<a name="l00843"></a>00843 
+<a name="l00844"></a>00844   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<unsigned, 4></a> Defs;
+<a name="l00845"></a>00845   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a803a7424877fd049679b9aa2f07597b5">getDesc</a>().<a class="code" href="classllvm_1_1MCInstrDesc.html#a55194ec3a1e49d04eab64e993e614246">getNumOperands</a>(); i != e; ++i) {
+<a name="l00846"></a>00846     <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i);
+<a name="l00847"></a>00847     <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>() || MO.<a class="code" href="classllvm_1_1MachineOperand.html#a40a5d6e03f5bfd15839355a7c39ab3a0">isImplicit</a>())
+<a name="l00848"></a>00848       <span class="keywordflow">continue</span>;
+<a name="l00849"></a>00849     <span class="keywordtype">unsigned</span> Reg = MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l00850"></a>00850     <span class="keywordflow">if</span> (!<a class="code" href="classllvm_1_1TargetRegisterInfo.html#ae62c5ea35b71f9020caa94340bc78f37">TargetRegisterInfo::isVirtualRegister</a>(Reg))
+<a name="l00851"></a>00851       <span class="keywordflow">continue</span>;
+<a name="l00852"></a>00852 
+<a name="l00853"></a>00853     <span class="keywordtype">bool</span> isNew = RegSeen.insert(Reg);
+<a name="l00854"></a>00854     <span class="keywordflow">if</span> (MO.<a class="code" href="classllvm_1_1MachineOperand.html#a8de7d5cf38939044471c6ee60a01a3df">isDef</a>())
+<a name="l00855"></a>00855       Defs.<a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(Reg);
+<a name="l00856"></a>00856     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!isNew && <a class="code" href="MachineLICM_8cpp.html#a3b6f8318fa97ea96ea30725e31e85fea">isOperandKill</a>(MO, MRI)) {
+<a name="l00857"></a>00857       <span class="keywordtype">unsigned</span> RCId, RCCost;
+<a name="l00858"></a>00858       getRegisterClassIDAndCost(MI, Reg, i, RCId, RCCost);
+<a name="l00859"></a>00859       <span class="keywordflow">if</span> (RCCost > <a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>[RCId])
+<a name="l00860"></a>00860         <a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>[RCId] = 0;
+<a name="l00861"></a>00861       <span class="keywordflow">else</span>
+<a name="l00862"></a>00862         <a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>[RCId] -= RCCost;
+<a name="l00863"></a>00863     }
+<a name="l00864"></a>00864   }
+<a name="l00865"></a>00865 
+<a name="l00866"></a>00866   <span class="keywordtype">unsigned</span> Idx = 0;
+<a name="l00867"></a>00867   <span class="keywordflow">while</span> (!Defs.<a class="code" href="classllvm_1_1SmallVectorBase.html#afdecfccba9b1fd8c9fd8eb27ae69e9a0">empty</a>()) {
+<a name="l00868"></a>00868     <span class="keywordtype">unsigned</span> Reg = Defs.<a class="code" href="classllvm_1_1SmallVectorImpl.html#a0c8ffe664a36e30d49c84d0aded2fe08">pop_back_val</a>();
+<a name="l00869"></a>00869     <span class="keywordtype">unsigned</span> RCId, RCCost;
+<a name="l00870"></a>00870     getRegisterClassIDAndCost(MI, Reg, Idx, RCId, RCCost);
+<a name="l00871"></a>00871     <a class="code" href="namespacellvm_1_1Sched.html#ac1547cccaf660851fcd6863d1e60309ea5b5fba18a61456ef5858005d9f7b153e">RegPressure</a>[RCId] += RCCost;
+<a name="l00872"></a>00872     ++Idx;
+<a name="l00873"></a>00873   }
+<a name="l00874"></a>00874 }
+<a name="l00875"></a>00875 <span class="comment"></span>
+<a name="l00876"></a>00876 <span class="comment">/// isLoadFromGOTOrConstantPool - Return true if this machine instruction</span>
+<a name="l00877"></a>00877 <span class="comment">/// loads from global offset table or constant pool.</span>
+<a name="l00878"></a><a class="code" href="MachineLICM_8cpp.html#a27155066ff11c6a72e3dd16c774d4655">00878</a> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="MachineLICM_8cpp.html#a27155066ff11c6a72e3dd16c774d4655">isLoadFromGOTOrConstantPool</a>(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> &MI) {
+<a name="l00879"></a>00879   assert (MI.<a class="code" href="classllvm_1_1MachineInstr.html#a2b48451e9cc8433ed5f8ee30462cc96e">mayLoad</a>() && <span class="stringliteral">"Expected MI that loads!"</span>);
+<a name="l00880"></a>00880   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineMemOperand.html">MachineInstr::mmo_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = MI.<a class="code" href="classllvm_1_1MachineInstr.html#abb87c1c9d9046e29211e9875e27ceef9" title="Access to memory operands of the instruction.">memoperands_begin</a>(),
+<a name="l00881"></a>00881          E = MI.<a class="code" href="classllvm_1_1MachineInstr.html#a8d6268ac5d00f510ade10bd1865d9829">memoperands_end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00882"></a>00882     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> *V = (*I)->getValue()) {
+<a name="l00883"></a>00883       <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1PseudoSourceValue.html">PseudoSourceValue</a> *PSV = dyn_cast<PseudoSourceValue>(V))
+<a name="l00884"></a>00884         <span class="keywordflow">if</span> (PSV == PSV->getGOT() || PSV == PSV->getConstantPool())
+<a name="l00885"></a>00885           <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00886"></a>00886     }
+<a name="l00887"></a>00887   }
+<a name="l00888"></a>00888   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00889"></a>00889 }
+<a name="l00890"></a>00890 <span class="comment"></span>
+<a name="l00891"></a>00891 <span class="comment">/// IsLICMCandidate - Returns true if the instruction may be a suitable</span>
+<a name="l00892"></a>00892 <span class="comment">/// candidate for LICM. e.g. If the instruction is a call, then it's obviously</span>
+<a name="l00893"></a>00893 <span class="comment">/// not safe to hoist it.</span>
+<a name="l00894"></a>00894 <span class="comment"></span><span class="keywordtype">bool</span> MachineLICM::IsLICMCandidate(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> &<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00895"></a>00895   <span class="comment">// Check if it's safe to move the instruction.</span>
+<a name="l00896"></a>00896   <span class="keywordtype">bool</span> DontMoveAcrossStore = <span class="keyword">true</span>;
+<a name="l00897"></a>00897   <span class="keywordflow">if</span> (!I.<a class="code" href="classllvm_1_1MachineInstr.html#a55f1c19ebb9fce7a442816eeb154174f">isSafeToMove</a>(TII, AA, DontMoveAcrossStore))
+<a name="l00898"></a>00898     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00899"></a>00899 
+<a name="l00900"></a>00900   <span class="comment">// If it is load then check if it is guaranteed to execute by making sure that</span>
+<a name="l00901"></a>00901   <span class="comment">// it dominates all exiting blocks. If it doesn't, then there is a path out of</span>
+<a name="l00902"></a>00902   <span class="comment">// the loop which does not execute this load, so we can't hoist it. Loads</span>
+<a name="l00903"></a>00903   <span class="comment">// from constant memory are not safe to speculate all the time, for example</span>
+<a name="l00904"></a>00904   <span class="comment">// indexed load from a jump table.</span>
+<a name="l00905"></a>00905   <span class="comment">// Stores and side effects are already checked by isSafeToMove.</span>
+<a name="l00906"></a>00906   <span class="keywordflow">if</span> (I.<a class="code" href="classllvm_1_1MachineInstr.html#a2b48451e9cc8433ed5f8ee30462cc96e">mayLoad</a>() && !<a class="code" href="MachineLICM_8cpp.html#a27155066ff11c6a72e3dd16c774d4655">isLoadFromGOTOrConstantPool</a>(I) &&
+<a name="l00907"></a>00907       !IsGuaranteedToExecute(I.<a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>()))
+<a name="l00908"></a>00908     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00909"></a>00909 
+<a name="l00910"></a>00910   <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00911"></a>00911 }
+<a name="l00912"></a>00912 <span class="comment"></span>
+<a name="l00913"></a>00913 <span class="comment">/// IsLoopInvariantInst - Returns true if the instruction is loop</span>
+<a name="l00914"></a>00914 <span class="comment">/// invariant. I.e., all virtual register operands are defined outside of the</span>
+<a name="l00915"></a>00915 <span class="comment">/// loop, physical registers aren't accessed explicitly, and there are no side</span>
+<a name="l00916"></a>00916 <span class="comment">/// effects that aren't captured by the operands or other flags.</span>
+<a name="l00917"></a>00917 <span class="comment">///</span>
+<a name="l00918"></a>00918 <span class="comment"></span><span class="keywordtype">bool</span> MachineLICM::IsLoopInvariantInst(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> &I) {
+<a name="l00919"></a>00919   <span class="keywordflow">if</span> (!IsLICMCandidate(I))
+<a name="l00920"></a>00920     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00921"></a>00921 
+<a name="l00922"></a>00922   <span class="comment">// The instruction is loop invariant if all of its operands are.</span>
+<a name="l00923"></a>00923   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = I.<a class="code" href="classllvm_1_1MachineInstr.html#a7b5fe96d88954efc855e6c466207e535">getNumOperands</a>(); i != e; ++i) {
+<a name="l00924"></a>00924     <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO = I.<a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i);
+<a name="l00925"></a>00925 
+<a name="l00926"></a>00926     <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>())
+<a name="l00927"></a>00927       <span class="keywordflow">continue</span>;
+<a name="l00928"></a>00928 
+<a name="l00929"></a>00929     <span class="keywordtype">unsigned</span> Reg = MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l00930"></a>00930     <span class="keywordflow">if</span> (Reg == 0) <span class="keywordflow">continue</span>;
+<a name="l00931"></a>00931 
+<a name="l00932"></a>00932     <span class="comment">// Don't hoist an instruction that uses or defines a physical register.</span>
+<a name="l00933"></a>00933     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1TargetRegisterInfo.html#a055858b14215864ed367a8db6c19d6f6">TargetRegisterInfo::isPhysicalRegister</a>(Reg)) {
+<a name="l00934"></a>00934       <span class="keywordflow">if</span> (MO.<a class="code" href="classllvm_1_1MachineOperand.html#a57bf9ee7219097ff0f98da23a3b3b782">isUse</a>()) {
+<a name="l00935"></a>00935         <span class="comment">// If the physreg has no defs anywhere, it's just an ambient register</span>
+<a name="l00936"></a>00936         <span class="comment">// and we can freely move its uses. Alternatively, if it's allocatable,</span>
+<a name="l00937"></a>00937         <span class="comment">// it could get allocated to something with a def during allocation.</span>
+<a name="l00938"></a>00938         <span class="keywordflow">if</span> (!MRI->isConstantPhysReg(Reg, *I.<a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>()-><a class="code" href="classllvm_1_1MachineBasicBlock.html#af2e482ff2a9253ec6bc2285491496bd6">getParent</a>()))
+<a name="l00939"></a>00939           <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00940"></a>00940         <span class="comment">// Otherwise it's safe to move.</span>
+<a name="l00941"></a>00941         <span class="keywordflow">continue</span>;
+<a name="l00942"></a>00942       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#a196420aa839c2b21f42c4bf5c36df437">isDead</a>()) {
+<a name="l00943"></a>00943         <span class="comment">// A def that isn't dead. We can't move it.</span>
+<a name="l00944"></a>00944         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00945"></a>00945       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (CurLoop->getHeader()->isLiveIn(Reg)) {
+<a name="l00946"></a>00946         <span class="comment">// If the reg is live into the loop, we can't hoist an instruction</span>
+<a name="l00947"></a>00947         <span class="comment">// which would clobber it.</span>
+<a name="l00948"></a>00948         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00949"></a>00949       }
+<a name="l00950"></a>00950     }
+<a name="l00951"></a>00951 
+<a name="l00952"></a>00952     <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#a57bf9ee7219097ff0f98da23a3b3b782">isUse</a>())
+<a name="l00953"></a>00953       <span class="keywordflow">continue</span>;
+<a name="l00954"></a>00954 
+<a name="l00955"></a>00955     assert(MRI->getVRegDef(Reg) &&
+<a name="l00956"></a>00956            <span class="stringliteral">"Machine instr not mapped for this vreg?!"</span>);
+<a name="l00957"></a>00957 
+<a name="l00958"></a>00958     <span class="comment">// If the loop contains the definition of an operand, then the instruction</span>
+<a name="l00959"></a>00959     <span class="comment">// isn't loop invariant.</span>
+<a name="l00960"></a>00960     <span class="keywordflow">if</span> (CurLoop->contains(MRI->getVRegDef(Reg)))
+<a name="l00961"></a>00961       <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00962"></a>00962   }
+<a name="l00963"></a>00963 
+<a name="l00964"></a>00964   <span class="comment">// If we got this far, the instruction is loop invariant!</span>
+<a name="l00965"></a>00965   <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00966"></a>00966 }
+<a name="l00967"></a>00967 
+<a name="l00968"></a>00968 <span class="comment"></span>
+<a name="l00969"></a>00969 <span class="comment">/// HasLoopPHIUse - Return true if the specified instruction is used by a</span>
+<a name="l00970"></a>00970 <span class="comment">/// phi node and hoisting it could cause a copy to be inserted.</span>
+<a name="l00971"></a>00971 <span class="comment"></span><span class="keywordtype">bool</span> MachineLICM::HasLoopPHIUse(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI)<span class="keyword"> const </span>{
+<a name="l00972"></a>00972   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<const MachineInstr*, 8></a> Work(1, MI);
+<a name="l00973"></a>00973   <span class="keywordflow">do</span> {
+<a name="l00974"></a>00974     MI = Work.pop_back_val();
+<a name="l00975"></a>00975     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ConstMIOperands.html">ConstMIOperands</a> MO(MI); MO.isValid(); ++MO) {
+<a name="l00976"></a>00976       <span class="keywordflow">if</span> (!MO-><a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>() || !MO-><a class="code" href="classllvm_1_1MachineOperand.html#a8de7d5cf38939044471c6ee60a01a3df">isDef</a>())
+<a name="l00977"></a>00977         <span class="keywordflow">continue</span>;
+<a name="l00978"></a>00978       <span class="keywordtype">unsigned</span> Reg = MO-><a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l00979"></a>00979       <span class="keywordflow">if</span> (!<a class="code" href="classllvm_1_1TargetRegisterInfo.html#ae62c5ea35b71f9020caa94340bc78f37">TargetRegisterInfo::isVirtualRegister</a>(Reg))
+<a name="l00980"></a>00980         <span class="keywordflow">continue</span>;
+<a name="l00981"></a>00981       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineRegisterInfo_1_1defusechain__iterator.html">MachineRegisterInfo::use_iterator</a> UI = MRI->use_begin(Reg),
+<a name="l00982"></a>00982            UE = MRI->use_end(); UI != UE; ++UI) {
+<a name="l00983"></a>00983         <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *UseMI = &*UI;
+<a name="l00984"></a>00984         <span class="comment">// A PHI may cause a copy to be inserted.</span>
+<a name="l00985"></a>00985         <span class="keywordflow">if</span> (UseMI-><a class="code" href="classllvm_1_1MachineInstr.html#ad70025709baab4e42d5d9d83023bc402">isPHI</a>()) {
+<a name="l00986"></a>00986           <span class="comment">// A PHI inside the loop causes a copy because the live range of Reg is</span>
+<a name="l00987"></a>00987           <span class="comment">// extended across the PHI.</span>
+<a name="l00988"></a>00988           <span class="keywordflow">if</span> (CurLoop->contains(UseMI))
+<a name="l00989"></a>00989             <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00990"></a>00990           <span class="comment">// A PHI in an exit block can cause a copy to be inserted if the PHI</span>
+<a name="l00991"></a>00991           <span class="comment">// has multiple predecessors in the loop with different values.</span>
+<a name="l00992"></a>00992           <span class="comment">// For now, approximate by rejecting all exit blocks.</span>
+<a name="l00993"></a>00993           <span class="keywordflow">if</span> (<a class="code" href="LCSSA_8cpp.html#a07f138d2a84576c85e238a26969e5ff9" title="isExitBlock - Return true if the specified block is in the list.">isExitBlock</a>(UseMI-><a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>()))
+<a name="l00994"></a>00994             <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00995"></a>00995           <span class="keywordflow">continue</span>;
+<a name="l00996"></a>00996         }
+<a name="l00997"></a>00997         <span class="comment">// Look past copies as well.</span>
+<a name="l00998"></a>00998         <span class="keywordflow">if</span> (UseMI-><a class="code" href="classllvm_1_1MachineInstr.html#ae0ac5973cd95f76e3365e67aaad69de6">isCopy</a>() && CurLoop->contains(UseMI))
+<a name="l00999"></a>00999           Work.push_back(UseMI);
+<a name="l01000"></a>01000       }
+<a name="l01001"></a>01001     }
+<a name="l01002"></a>01002   } <span class="keywordflow">while</span> (!Work.empty());
+<a name="l01003"></a>01003   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01004"></a>01004 }
+<a name="l01005"></a>01005 <span class="comment"></span>
+<a name="l01006"></a>01006 <span class="comment">/// HasHighOperandLatency - Compute operand latency between a def of 'Reg'</span>
+<a name="l01007"></a>01007 <span class="comment">/// and an use in the current loop, return true if the target considered</span>
+<a name="l01008"></a>01008 <span class="comment">/// it 'high'.</span>
+<a name="l01009"></a>01009 <span class="comment"></span><span class="keywordtype">bool</span> MachineLICM::HasHighOperandLatency(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> &MI,
+<a name="l01010"></a>01010                                         <span class="keywordtype">unsigned</span> DefIdx, <span class="keywordtype">unsigned</span> Reg)<span class="keyword"> const </span>{
+<a name="l01011"></a>01011   <span class="keywordflow">if</span> (!InstrItins || InstrItins->isEmpty() || MRI->use_nodbg_empty(Reg))
+<a name="l01012"></a>01012     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01013"></a>01013 
+<a name="l01014"></a>01014   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineRegisterInfo_1_1defusechain__iterator.html">MachineRegisterInfo::use_nodbg_iterator</a> I = MRI->use_nodbg_begin(Reg),
+<a name="l01015"></a>01015          E = MRI->use_nodbg_end(); I != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l01016"></a>01016     <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *UseMI = &*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l01017"></a>01017     <span class="keywordflow">if</span> (UseMI-><a class="code" href="classllvm_1_1MachineInstr.html#a100d59f6313d76435a54425d3d11bf99">isCopyLike</a>())
+<a name="l01018"></a>01018       <span class="keywordflow">continue</span>;
+<a name="l01019"></a>01019     <span class="keywordflow">if</span> (!CurLoop->contains(UseMI-><a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>()))
+<a name="l01020"></a>01020       <span class="keywordflow">continue</span>;
+<a name="l01021"></a>01021     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = UseMI-><a class="code" href="classllvm_1_1MachineInstr.html#a7b5fe96d88954efc855e6c466207e535">getNumOperands</a>(); i != e; ++i) {
+<a name="l01022"></a>01022       <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO = UseMI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i);
+<a name="l01023"></a>01023       <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>() || !MO.<a class="code" href="classllvm_1_1MachineOperand.html#a57bf9ee7219097ff0f98da23a3b3b782">isUse</a>())
+<a name="l01024"></a>01024         <span class="keywordflow">continue</span>;
+<a name="l01025"></a>01025       <span class="keywordtype">unsigned</span> MOReg = MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l01026"></a>01026       <span class="keywordflow">if</span> (MOReg != Reg)
+<a name="l01027"></a>01027         <span class="keywordflow">continue</span>;
+<a name="l01028"></a>01028 
+<a name="l01029"></a>01029       <span class="keywordflow">if</span> (TII->hasHighOperandLatency(InstrItins, MRI, &MI, DefIdx, UseMI, i))
+<a name="l01030"></a>01030         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l01031"></a>01031     }
+<a name="l01032"></a>01032 
+<a name="l01033"></a>01033     <span class="comment">// Only look at the first in loop use.</span>
+<a name="l01034"></a>01034     <span class="keywordflow">break</span>;
+<a name="l01035"></a>01035   }
+<a name="l01036"></a>01036 
+<a name="l01037"></a>01037   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01038"></a>01038 }
+<a name="l01039"></a>01039 <span class="comment"></span>
+<a name="l01040"></a>01040 <span class="comment">/// IsCheapInstruction - Return true if the instruction is marked "cheap" or</span>
+<a name="l01041"></a>01041 <span class="comment">/// the operand latency between its def and a use is one or less.</span>
+<a name="l01042"></a>01042 <span class="comment"></span><span class="keywordtype">bool</span> MachineLICM::IsCheapInstruction(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> &MI)<span class="keyword"> const </span>{
+<a name="l01043"></a>01043   <span class="keywordflow">if</span> (MI.<a class="code" href="classllvm_1_1MachineInstr.html#ac2d31549cd95bf8c917744e997bf73f7">isAsCheapAsAMove</a>() || MI.<a class="code" href="classllvm_1_1MachineInstr.html#a100d59f6313d76435a54425d3d11bf99">isCopyLike</a>())
+<a name="l01044"></a>01044     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l01045"></a>01045   <span class="keywordflow">if</span> (!InstrItins || InstrItins->isEmpty())
+<a name="l01046"></a>01046     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01047"></a>01047 
+<a name="l01048"></a>01048   <span class="keywordtype">bool</span> isCheap = <span class="keyword">false</span>;
+<a name="l01049"></a>01049   <span class="keywordtype">unsigned</span> NumDefs = MI.<a class="code" href="classllvm_1_1MachineInstr.html#a803a7424877fd049679b9aa2f07597b5">getDesc</a>().<a class="code" href="classllvm_1_1MCInstrDesc.html#a9d472a8ee447cef18a71beb229d4d252">getNumDefs</a>();
+<a name="l01050"></a>01050   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = MI.<a class="code" href="classllvm_1_1MachineInstr.html#a7b5fe96d88954efc855e6c466207e535">getNumOperands</a>(); NumDefs && i != e; ++i) {
+<a name="l01051"></a>01051     <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &DefMO = MI.<a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i);
+<a name="l01052"></a>01052     <span class="keywordflow">if</span> (!DefMO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>() || !DefMO.<a class="code" href="classllvm_1_1MachineOperand.html#a8de7d5cf38939044471c6ee60a01a3df">isDef</a>())
+<a name="l01053"></a>01053       <span class="keywordflow">continue</span>;
+<a name="l01054"></a>01054     --NumDefs;
+<a name="l01055"></a>01055     <span class="keywordtype">unsigned</span> Reg = DefMO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l01056"></a>01056     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1TargetRegisterInfo.html#a055858b14215864ed367a8db6c19d6f6">TargetRegisterInfo::isPhysicalRegister</a>(Reg))
+<a name="l01057"></a>01057       <span class="keywordflow">continue</span>;
+<a name="l01058"></a>01058 
+<a name="l01059"></a>01059     <span class="keywordflow">if</span> (!TII->hasLowDefLatency(InstrItins, &MI, i))
+<a name="l01060"></a>01060       <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01061"></a>01061     isCheap = <span class="keyword">true</span>;
+<a name="l01062"></a>01062   }
+<a name="l01063"></a>01063 
+<a name="l01064"></a>01064   <span class="keywordflow">return</span> isCheap;
+<a name="l01065"></a>01065 }
+<a name="l01066"></a>01066 <span class="comment"></span>
+<a name="l01067"></a>01067 <span class="comment">/// CanCauseHighRegPressure - Visit BBs from header to current BB, check</span>
+<a name="l01068"></a>01068 <span class="comment">/// if hoisting an instruction of the given cost matrix can cause high</span>
+<a name="l01069"></a>01069 <span class="comment">/// register pressure.</span>
+<a name="l01070"></a>01070 <span class="comment"></span><span class="keywordtype">bool</span> MachineLICM::CanCauseHighRegPressure(<a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, int></a> &Cost,
+<a name="l01071"></a>01071                                           <span class="keywordtype">bool</span> CheapInstr) {
+<a name="l01072"></a>01072   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, int>::iterator</a> CI = Cost.<a class="code" href="classllvm_1_1DenseMapBase.html#a432d7e955f44b118b4261eae03d7a8af">begin</a>(), CE = Cost.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>();
+<a name="l01073"></a>01073        CI != CE; ++CI) {
+<a name="l01074"></a>01074     <span class="keywordflow">if</span> (CI->second <= 0)
+<a name="l01075"></a>01075       <span class="keywordflow">continue</span>;
+<a name="l01076"></a>01076 
+<a name="l01077"></a>01077     <span class="keywordtype">unsigned</span> RCId = CI->first;
+<a name="l01078"></a>01078     <span class="keywordtype">unsigned</span> Limit = RegLimit[RCId];
+<a name="l01079"></a>01079     <span class="keywordtype">int</span> Cost = CI->second;
+<a name="l01080"></a>01080 
+<a name="l01081"></a>01081     <span class="comment">// Don't hoist cheap instructions if they would increase register pressure,</span>
+<a name="l01082"></a>01082     <span class="comment">// even if we're under the limit.</span>
+<a name="l01083"></a>01083     <span class="keywordflow">if</span> (CheapInstr)
+<a name="l01084"></a>01084       <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l01085"></a>01085 
+<a name="l01086"></a>01086     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = BackTrace.size(); i != 0; --i) {
+<a name="l01087"></a>01087       <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<unsigned, 8></a> &RP = BackTrace[i-1];
+<a name="l01088"></a>01088       <span class="keywordflow">if</span> (RP[RCId] + Cost >= Limit)
+<a name="l01089"></a>01089         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l01090"></a>01090     }
+<a name="l01091"></a>01091   }
+<a name="l01092"></a>01092 
+<a name="l01093"></a>01093   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01094"></a>01094 }
+<a name="l01095"></a>01095 <span class="comment"></span>
+<a name="l01096"></a>01096 <span class="comment">/// UpdateBackTraceRegPressure - Traverse the back trace from header to the</span>
+<a name="l01097"></a>01097 <span class="comment">/// current block and update their register pressures to reflect the effect</span>
+<a name="l01098"></a>01098 <span class="comment">/// of hoisting MI from the current block to the preheader.</span>
+<a name="l01099"></a>01099 <span class="comment"></span><span class="keywordtype">void</span> MachineLICM::UpdateBackTraceRegPressure(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI) {
+<a name="l01100"></a>01100   <span class="keywordflow">if</span> (MI-><a class="code" href="classllvm_1_1MachineInstr.html#a0e15c0325463fc62bd16ccd9ec2b9ec5">isImplicitDef</a>())
+<a name="l01101"></a>01101     <span class="keywordflow">return</span>;
+<a name="l01102"></a>01102 
+<a name="l01103"></a>01103   <span class="comment">// First compute the 'cost' of the instruction, i.e. its contribution</span>
+<a name="l01104"></a>01104   <span class="comment">// to register pressure.</span>
+<a name="l01105"></a>01105   <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, int></a> Cost;
+<a name="l01106"></a>01106   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a803a7424877fd049679b9aa2f07597b5">getDesc</a>().<a class="code" href="classllvm_1_1MCInstrDesc.html#a55194ec3a1e49d04eab64e993e614246">getNumOperands</a>(); i != e; ++i) {
+<a name="l01107"></a>01107     <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i);
+<a name="l01108"></a>01108     <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>() || MO.<a class="code" href="classllvm_1_1MachineOperand.html#a40a5d6e03f5bfd15839355a7c39ab3a0">isImplicit</a>())
+<a name="l01109"></a>01109       <span class="keywordflow">continue</span>;
+<a name="l01110"></a>01110     <span class="keywordtype">unsigned</span> Reg = MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l01111"></a>01111     <span class="keywordflow">if</span> (!<a class="code" href="classllvm_1_1TargetRegisterInfo.html#ae62c5ea35b71f9020caa94340bc78f37">TargetRegisterInfo::isVirtualRegister</a>(Reg))
+<a name="l01112"></a>01112       <span class="keywordflow">continue</span>;
+<a name="l01113"></a>01113 
+<a name="l01114"></a>01114     <span class="keywordtype">unsigned</span> RCId, RCCost;
+<a name="l01115"></a>01115     getRegisterClassIDAndCost(MI, Reg, i, RCId, RCCost);
+<a name="l01116"></a>01116     <span class="keywordflow">if</span> (MO.<a class="code" href="classllvm_1_1MachineOperand.html#a8de7d5cf38939044471c6ee60a01a3df">isDef</a>()) {
+<a name="l01117"></a>01117       <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, int>::iterator</a> CI = Cost.<a class="code" href="classllvm_1_1DenseMapBase.html#a21cf94357e53cd1069aba475266fdb63">find</a>(RCId);
+<a name="l01118"></a>01118       <span class="keywordflow">if</span> (CI != Cost.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>())
+<a name="l01119"></a>01119         CI->second += RCCost;
+<a name="l01120"></a>01120       <span class="keywordflow">else</span>
+<a name="l01121"></a>01121         Cost.<a class="code" href="classllvm_1_1DenseMapBase.html#a699a66e504b48fdeff124e82f6c61917">insert</a>(std::make_pair(RCId, RCCost));
+<a name="l01122"></a>01122     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="MachineLICM_8cpp.html#a3b6f8318fa97ea96ea30725e31e85fea">isOperandKill</a>(MO, MRI)) {
+<a name="l01123"></a>01123       <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, int>::iterator</a> CI = Cost.<a class="code" href="classllvm_1_1DenseMapBase.html#a21cf94357e53cd1069aba475266fdb63">find</a>(RCId);
+<a name="l01124"></a>01124       <span class="keywordflow">if</span> (CI != Cost.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>())
+<a name="l01125"></a>01125         CI->second -= RCCost;
+<a name="l01126"></a>01126       <span class="keywordflow">else</span>
+<a name="l01127"></a>01127         Cost.<a class="code" href="classllvm_1_1DenseMapBase.html#a699a66e504b48fdeff124e82f6c61917">insert</a>(std::make_pair(RCId, -RCCost));
+<a name="l01128"></a>01128     }
+<a name="l01129"></a>01129   }
+<a name="l01130"></a>01130 
+<a name="l01131"></a>01131   <span class="comment">// Update register pressure of blocks from loop header to current block.</span>
+<a name="l01132"></a>01132   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = BackTrace.size(); i != e; ++i) {
+<a name="l01133"></a>01133     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<unsigned, 8></a> &RP = BackTrace[i];
+<a name="l01134"></a>01134     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, int>::iterator</a> CI = Cost.<a class="code" href="classllvm_1_1DenseMapBase.html#a432d7e955f44b118b4261eae03d7a8af">begin</a>(), CE = Cost.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>();
+<a name="l01135"></a>01135          CI != CE; ++CI) {
+<a name="l01136"></a>01136       <span class="keywordtype">unsigned</span> RCId = CI->first;
+<a name="l01137"></a>01137       RP[RCId] += CI->second;
+<a name="l01138"></a>01138     }
+<a name="l01139"></a>01139   }
+<a name="l01140"></a>01140 }
+<a name="l01141"></a>01141 <span class="comment"></span>
+<a name="l01142"></a>01142 <span class="comment">/// IsProfitableToHoist - Return true if it is potentially profitable to hoist</span>
+<a name="l01143"></a>01143 <span class="comment">/// the given loop invariant.</span>
+<a name="l01144"></a>01144 <span class="comment"></span><span class="keywordtype">bool</span> MachineLICM::IsProfitableToHoist(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> &MI) {
+<a name="l01145"></a>01145   <span class="keywordflow">if</span> (MI.<a class="code" href="classllvm_1_1MachineInstr.html#a0e15c0325463fc62bd16ccd9ec2b9ec5">isImplicitDef</a>())
+<a name="l01146"></a>01146     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l01147"></a>01147 
+<a name="l01148"></a>01148   <span class="comment">// Besides removing computation from the loop, hoisting an instruction has</span>
+<a name="l01149"></a>01149   <span class="comment">// these effects:</span>
+<a name="l01150"></a>01150   <span class="comment">//</span>
+<a name="l01151"></a>01151   <span class="comment">// - The value defined by the instruction becomes live across the entire</span>
+<a name="l01152"></a>01152   <span class="comment">//   loop. This increases register pressure in the loop.</span>
+<a name="l01153"></a>01153   <span class="comment">//</span>
+<a name="l01154"></a>01154   <span class="comment">// - If the value is used by a PHI in the loop, a copy will be required for</span>
+<a name="l01155"></a>01155   <span class="comment">//   lowering the PHI after extending the live range.</span>
+<a name="l01156"></a>01156   <span class="comment">//</span>
+<a name="l01157"></a>01157   <span class="comment">// - When hoisting the last use of a value in the loop, that value no longer</span>
+<a name="l01158"></a>01158   <span class="comment">//   needs to be live in the loop. This lowers register pressure in the loop.</span>
+<a name="l01159"></a>01159 
+<a name="l01160"></a>01160   <span class="keywordtype">bool</span> CheapInstr = IsCheapInstruction(MI);
+<a name="l01161"></a>01161   <span class="keywordtype">bool</span> CreatesCopy = HasLoopPHIUse(&MI);
+<a name="l01162"></a>01162 
+<a name="l01163"></a>01163   <span class="comment">// Don't hoist a cheap instruction if it would create a copy in the loop.</span>
+<a name="l01164"></a>01164   <span class="keywordflow">if</span> (CheapInstr && CreatesCopy) {
+<a name="l01165"></a>01165     <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Won't hoist cheap instr with loop PHI use: "</span> << MI);
+<a name="l01166"></a>01166     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01167"></a>01167   }
+<a name="l01168"></a>01168 
+<a name="l01169"></a>01169   <span class="comment">// Rematerializable instructions should always be hoisted since the register</span>
+<a name="l01170"></a>01170   <span class="comment">// allocator can just pull them down again when needed.</span>
+<a name="l01171"></a>01171   <span class="keywordflow">if</span> (TII->isTriviallyReMaterializable(&MI, AA))
+<a name="l01172"></a>01172     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l01173"></a>01173 
+<a name="l01174"></a>01174   <span class="comment">// Estimate register pressure to determine whether to LICM the instruction.</span>
+<a name="l01175"></a>01175   <span class="comment">// In low register pressure situation, we can be more aggressive about</span>
+<a name="l01176"></a>01176   <span class="comment">// hoisting. Also, favors hoisting long latency instructions even in</span>
+<a name="l01177"></a>01177   <span class="comment">// moderately high pressure situation.</span>
+<a name="l01178"></a>01178   <span class="comment">// Cheap instructions will only be hoisted if they don't increase register</span>
+<a name="l01179"></a>01179   <span class="comment">// pressure at all.</span>
+<a name="l01180"></a>01180   <span class="comment">// FIXME: If there are long latency loop-invariant instructions inside the</span>
+<a name="l01181"></a>01181   <span class="comment">// loop at this point, why didn't the optimizer's LICM hoist them?</span>
+<a name="l01182"></a>01182   <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, int></a> Cost;
+<a name="l01183"></a>01183   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = MI.<a class="code" href="classllvm_1_1MachineInstr.html#a803a7424877fd049679b9aa2f07597b5">getDesc</a>().<a class="code" href="classllvm_1_1MCInstrDesc.html#a55194ec3a1e49d04eab64e993e614246">getNumOperands</a>(); i != e; ++i) {
+<a name="l01184"></a>01184     <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO = MI.<a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i);
+<a name="l01185"></a>01185     <span class="keywordflow">if</span> (!MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>() || MO.<a class="code" href="classllvm_1_1MachineOperand.html#a40a5d6e03f5bfd15839355a7c39ab3a0">isImplicit</a>())
+<a name="l01186"></a>01186       <span class="keywordflow">continue</span>;
+<a name="l01187"></a>01187     <span class="keywordtype">unsigned</span> Reg = MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l01188"></a>01188     <span class="keywordflow">if</span> (!<a class="code" href="classllvm_1_1TargetRegisterInfo.html#ae62c5ea35b71f9020caa94340bc78f37">TargetRegisterInfo::isVirtualRegister</a>(Reg))
+<a name="l01189"></a>01189       <span class="keywordflow">continue</span>;
+<a name="l01190"></a>01190 
+<a name="l01191"></a>01191     <span class="keywordtype">unsigned</span> RCId, RCCost;
+<a name="l01192"></a>01192     getRegisterClassIDAndCost(&MI, Reg, i, RCId, RCCost);
+<a name="l01193"></a>01193     <span class="keywordflow">if</span> (MO.<a class="code" href="classllvm_1_1MachineOperand.html#a8de7d5cf38939044471c6ee60a01a3df">isDef</a>()) {
+<a name="l01194"></a>01194       <span class="keywordflow">if</span> (HasHighOperandLatency(MI, i, Reg)) {
+<a name="l01195"></a>01195         <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Hoist High Latency: "</span> << MI);
+<a name="l01196"></a>01196         ++NumHighLatency;
+<a name="l01197"></a>01197         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l01198"></a>01198       }
+<a name="l01199"></a>01199       Cost[RCId] += RCCost;
+<a name="l01200"></a>01200     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="MachineLICM_8cpp.html#a3b6f8318fa97ea96ea30725e31e85fea">isOperandKill</a>(MO, MRI)) {
+<a name="l01201"></a>01201       <span class="comment">// Is a virtual register use is a kill, hoisting it out of the loop</span>
+<a name="l01202"></a>01202       <span class="comment">// may actually reduce register pressure or be register pressure</span>
+<a name="l01203"></a>01203       <span class="comment">// neutral.</span>
+<a name="l01204"></a>01204       Cost[RCId] -= RCCost;
+<a name="l01205"></a>01205     }
+<a name="l01206"></a>01206   }
+<a name="l01207"></a>01207 
+<a name="l01208"></a>01208   <span class="comment">// Visit BBs from header to current BB, if hoisting this doesn't cause</span>
+<a name="l01209"></a>01209   <span class="comment">// high register pressure, then it's safe to proceed.</span>
+<a name="l01210"></a>01210   <span class="keywordflow">if</span> (!CanCauseHighRegPressure(Cost, CheapInstr)) {
+<a name="l01211"></a>01211     <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Hoist non-reg-pressure: "</span> << MI);
+<a name="l01212"></a>01212     ++NumLowRP;
+<a name="l01213"></a>01213     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l01214"></a>01214   }
+<a name="l01215"></a>01215 
+<a name="l01216"></a>01216   <span class="comment">// Don't risk increasing register pressure if it would create copies.</span>
+<a name="l01217"></a>01217   <span class="keywordflow">if</span> (CreatesCopy) {
+<a name="l01218"></a>01218     <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Won't hoist instr with loop PHI use: "</span> << MI);
+<a name="l01219"></a>01219     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01220"></a>01220   }
+<a name="l01221"></a>01221 
+<a name="l01222"></a>01222   <span class="comment">// Do not "speculate" in high register pressure situation. If an</span>
+<a name="l01223"></a>01223   <span class="comment">// instruction is not guaranteed to be executed in the loop, it's best to be</span>
+<a name="l01224"></a>01224   <span class="comment">// conservative.</span>
+<a name="l01225"></a>01225   <span class="keywordflow">if</span> (<a class="code" href="MachineLICM_8cpp.html#a330f2a9738da6c37a754f204519c6351">AvoidSpeculation</a> &&
+<a name="l01226"></a>01226       (!IsGuaranteedToExecute(MI.<a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>()) && !MayCSE(&MI))) {
+<a name="l01227"></a>01227     <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Won't speculate: "</span> << MI);
+<a name="l01228"></a>01228     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01229"></a>01229   }
+<a name="l01230"></a>01230 
+<a name="l01231"></a>01231   <span class="comment">// High register pressure situation, only hoist if the instruction is going</span>
+<a name="l01232"></a>01232   <span class="comment">// to be remat'ed.</span>
+<a name="l01233"></a>01233   <span class="keywordflow">if</span> (!TII->isTriviallyReMaterializable(&MI, AA) &&
+<a name="l01234"></a>01234       !MI.<a class="code" href="classllvm_1_1MachineInstr.html#a3293892e5078a238db5b0f388aca5fa5">isInvariantLoad</a>(AA)) {
+<a name="l01235"></a>01235     <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Can't remat / high reg-pressure: "</span> << MI);
+<a name="l01236"></a>01236     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01237"></a>01237   }
+<a name="l01238"></a>01238 
+<a name="l01239"></a>01239   <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l01240"></a>01240 }
+<a name="l01241"></a>01241 
+<a name="l01242"></a>01242 <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MachineLICM::ExtractHoistableLoad(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI) {
+<a name="l01243"></a>01243   <span class="comment">// Don't unfold simple loads.</span>
+<a name="l01244"></a>01244   <span class="keywordflow">if</span> (MI-><a class="code" href="classllvm_1_1MachineInstr.html#a6ea66ea696ee423ada504c8d21786451">canFoldAsLoad</a>())
+<a name="l01245"></a>01245     <span class="keywordflow">return</span> 0;
+<a name="l01246"></a>01246 
+<a name="l01247"></a>01247   <span class="comment">// If not, we may be able to unfold a load and hoist that.</span>
+<a name="l01248"></a>01248   <span class="comment">// First test whether the instruction is loading from an amenable</span>
+<a name="l01249"></a>01249   <span class="comment">// memory location.</span>
+<a name="l01250"></a>01250   <span class="keywordflow">if</span> (!MI-><a class="code" href="classllvm_1_1MachineInstr.html#a3293892e5078a238db5b0f388aca5fa5">isInvariantLoad</a>(AA))
+<a name="l01251"></a>01251     <span class="keywordflow">return</span> 0;
+<a name="l01252"></a>01252 
+<a name="l01253"></a>01253   <span class="comment">// Next determine the register class for a temporary register.</span>
+<a name="l01254"></a>01254   <span class="keywordtype">unsigned</span> LoadRegIndex;
+<a name="l01255"></a>01255   <span class="keywordtype">unsigned</span> NewOpc =
+<a name="l01256"></a>01256     TII->getOpcodeAfterMemoryUnfold(MI-><a class="code" href="classllvm_1_1MachineInstr.html#a242314c0ae0147d1a7ef54c9bc312616">getOpcode</a>(),
+<a name="l01257"></a>01257                                     <span class="comment">/*UnfoldLoad=*/</span><span class="keyword">true</span>,
+<a name="l01258"></a>01258                                     <span class="comment">/*UnfoldStore=*/</span><span class="keyword">false</span>,
+<a name="l01259"></a>01259                                     &LoadRegIndex);
+<a name="l01260"></a>01260   <span class="keywordflow">if</span> (NewOpc == 0) <span class="keywordflow">return</span> 0;
+<a name="l01261"></a>01261   <span class="keyword">const</span> <a class="code" href="classllvm_1_1MCInstrDesc.html">MCInstrDesc</a> &MID = TII->get(NewOpc);
+<a name="l01262"></a>01262   <span class="keywordflow">if</span> (MID.<a class="code" href="classllvm_1_1MCInstrDesc.html#a9d472a8ee447cef18a71beb229d4d252">getNumDefs</a>() != 1) <span class="keywordflow">return</span> 0;
+<a name="l01263"></a>01263   <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF = *MI-><a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>()-><a class="code" href="classllvm_1_1MachineBasicBlock.html#af2e482ff2a9253ec6bc2285491496bd6">getParent</a>();
+<a name="l01264"></a>01264   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterClass.html">TargetRegisterClass</a> *RC = TII->getRegClass(MID, LoadRegIndex, TRI, MF);
+<a name="l01265"></a>01265   <span class="comment">// Ok, we're unfolding. Create a temporary register and do the unfold.</span>
+<a name="l01266"></a>01266   <span class="keywordtype">unsigned</span> Reg = MRI->createVirtualRegister(RC);
+<a name="l01267"></a>01267 
+<a name="l01268"></a>01268   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineInstr *, 2></a> NewMIs;
+<a name="l01269"></a>01269   <span class="keywordtype">bool</span> Success =
+<a name="l01270"></a>01270     TII->unfoldMemoryOperand(MF, MI, Reg,
+<a name="l01271"></a>01271                              <span class="comment">/*UnfoldLoad=*/</span><span class="keyword">true</span>, <span class="comment">/*UnfoldStore=*/</span><span class="keyword">false</span>,
+<a name="l01272"></a>01272                              NewMIs);
+<a name="l01273"></a>01273   (void)Success;
+<a name="l01274"></a>01274   assert(Success &&
+<a name="l01275"></a>01275          <span class="stringliteral">"unfoldMemoryOperand failed when getOpcodeAfterMemoryUnfold "</span>
+<a name="l01276"></a>01276          <span class="stringliteral">"succeeded!"</span>);
+<a name="l01277"></a>01277   assert(NewMIs.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>() == 2 &&
+<a name="l01278"></a>01278          <span class="stringliteral">"Unfolded a load into multiple instructions!"</span>);
+<a name="l01279"></a>01279   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB = MI-><a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>();
+<a name="l01280"></a>01280   <a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> Pos = <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>;
+<a name="l01281"></a>01281   MBB->insert(Pos, NewMIs[0]);
+<a name="l01282"></a>01282   MBB->insert(Pos, NewMIs[1]);
+<a name="l01283"></a>01283   <span class="comment">// If unfolding produced a load that wasn't loop-invariant or profitable to</span>
+<a name="l01284"></a>01284   <span class="comment">// hoist, discard the new instructions and bail.</span>
+<a name="l01285"></a>01285   <span class="keywordflow">if</span> (!IsLoopInvariantInst(*NewMIs[0]) || !IsProfitableToHoist(*NewMIs[0])) {
+<a name="l01286"></a>01286     NewMIs[0]->eraseFromParent();
+<a name="l01287"></a>01287     NewMIs[1]->eraseFromParent();
+<a name="l01288"></a>01288     <span class="keywordflow">return</span> 0;
+<a name="l01289"></a>01289   }
+<a name="l01290"></a>01290 
+<a name="l01291"></a>01291   <span class="comment">// Update register pressure for the unfolded instruction.</span>
+<a name="l01292"></a>01292   UpdateRegPressure(NewMIs[1]);
+<a name="l01293"></a>01293 
+<a name="l01294"></a>01294   <span class="comment">// Otherwise we successfully unfolded a load that we can hoist.</span>
+<a name="l01295"></a>01295   MI-><a class="code" href="classllvm_1_1MachineInstr.html#ac2421adbb9996e1b15f03a8abb6c70a8">eraseFromParent</a>();
+<a name="l01296"></a>01296   <span class="keywordflow">return</span> NewMIs[0];
+<a name="l01297"></a>01297 }
+<a name="l01298"></a>01298 
+<a name="l01299"></a>01299 <span class="keywordtype">void</span> MachineLICM::InitCSEMap(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *BB) {
+<a name="l01300"></a>01300   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> I = BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ab2d91e7bec944efcbc39d8e30644f111">begin</a>(),E = BB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#acbc921830578e2741be6549db716c0ce">end</a>(); I != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l01301"></a>01301     <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI = &*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l01302"></a>01302     <span class="keywordtype">unsigned</span> Opcode = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a242314c0ae0147d1a7ef54c9bc312616">getOpcode</a>();
+<a name="l01303"></a>01303     <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, std::vector<const MachineInstr*></a> ><a class="code" href="classstd_1_1iterator.html">::iterator</a>
+<a name="l01304"></a>01304       CI = CSEMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a21cf94357e53cd1069aba475266fdb63">find</a>(Opcode);
+<a name="l01305"></a>01305     <span class="keywordflow">if</span> (CI != CSEMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>())
+<a name="l01306"></a>01306       CI->second.push_back(MI);
+<a name="l01307"></a>01307     <span class="keywordflow">else</span> {
+<a name="l01308"></a>01308       std::vector<const MachineInstr*> CSEMIs;
+<a name="l01309"></a>01309       CSEMIs.push_back(MI);
+<a name="l01310"></a>01310       CSEMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a699a66e504b48fdeff124e82f6c61917">insert</a>(std::make_pair(Opcode, CSEMIs));
+<a name="l01311"></a>01311     }
+<a name="l01312"></a>01312   }
+<a name="l01313"></a>01313 }
+<a name="l01314"></a>01314 
+<a name="l01315"></a>01315 <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a>*
+<a name="l01316"></a>01316 MachineLICM::LookForDuplicate(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI,
+<a name="l01317"></a>01317                               std::vector<const MachineInstr*> &PrevMIs) {
+<a name="l01318"></a>01318   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = PrevMIs.size(); i != e; ++i) {
+<a name="l01319"></a>01319     <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *PrevMI = PrevMIs[i];
+<a name="l01320"></a>01320     <span class="keywordflow">if</span> (TII->produceSameValue(MI, PrevMI, (PreRegAlloc ? MRI : 0)))
+<a name="l01321"></a>01321       <span class="keywordflow">return</span> PrevMI;
+<a name="l01322"></a>01322   }
+<a name="l01323"></a>01323   <span class="keywordflow">return</span> 0;
+<a name="l01324"></a>01324 }
+<a name="l01325"></a>01325 
+<a name="l01326"></a>01326 <span class="keywordtype">bool</span> MachineLICM::EliminateCSE(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI,
+<a name="l01327"></a>01327           <a class="code" href="classllvm_1_1DenseMap.html">DenseMap</a><<span class="keywordtype">unsigned</span>, std::vector<const MachineInstr*> >::<a class="code" href="classstd_1_1iterator.html">iterator</a> &CI) {
+<a name="l01328"></a>01328   <span class="comment">// Do not CSE implicit_def so ProcessImplicitDefs can properly propagate</span>
+<a name="l01329"></a>01329   <span class="comment">// the undef property onto uses.</span>
+<a name="l01330"></a>01330   <span class="keywordflow">if</span> (CI == CSEMap.end() || MI-><a class="code" href="classllvm_1_1MachineInstr.html#a0e15c0325463fc62bd16ccd9ec2b9ec5">isImplicitDef</a>())
+<a name="l01331"></a>01331     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01332"></a>01332 
+<a name="l01333"></a>01333   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *Dup = LookForDuplicate(MI, CI->second)) {
+<a name="l01334"></a>01334     <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"CSEing "</span> << *MI << <span class="stringliteral">" with "</span> << *Dup);
+<a name="l01335"></a>01335 
+<a name="l01336"></a>01336     <span class="comment">// Replace virtual registers defined by MI by their counterparts defined</span>
+<a name="l01337"></a>01337     <span class="comment">// by Dup.</span>
+<a name="l01338"></a>01338     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<unsigned, 2></a> Defs;
+<a name="l01339"></a>01339     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a7b5fe96d88954efc855e6c466207e535">getNumOperands</a>(); i != e; ++i) {
+<a name="l01340"></a>01340       <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i);
+<a name="l01341"></a>01341 
+<a name="l01342"></a>01342       <span class="comment">// Physical registers may not differ here.</span>
+<a name="l01343"></a>01343       assert((!MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>() || MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>() == 0 ||
+<a name="l01344"></a>01344               !<a class="code" href="classllvm_1_1TargetRegisterInfo.html#a055858b14215864ed367a8db6c19d6f6">TargetRegisterInfo::isPhysicalRegister</a>(MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>()) ||
+<a name="l01345"></a>01345               MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>() == Dup->getOperand(i).getReg()) &&
+<a name="l01346"></a>01346              <span class="stringliteral">"Instructions with different phys regs are not identical!"</span>);
+<a name="l01347"></a>01347 
+<a name="l01348"></a>01348       <span class="keywordflow">if</span> (MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>() && MO.<a class="code" href="classllvm_1_1MachineOperand.html#a8de7d5cf38939044471c6ee60a01a3df">isDef</a>() &&
+<a name="l01349"></a>01349           !<a class="code" href="classllvm_1_1TargetRegisterInfo.html#a055858b14215864ed367a8db6c19d6f6">TargetRegisterInfo::isPhysicalRegister</a>(MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>()))
+<a name="l01350"></a>01350         Defs.<a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(i);
+<a name="l01351"></a>01351     }
+<a name="l01352"></a>01352 
+<a name="l01353"></a>01353     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<const TargetRegisterClass*, 2></a> OrigRCs;
+<a name="l01354"></a>01354     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Defs.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>(); i != e; ++i) {
+<a name="l01355"></a>01355       <span class="keywordtype">unsigned</span> Idx = Defs[i];
+<a name="l01356"></a>01356       <span class="keywordtype">unsigned</span> Reg = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(Idx).<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l01357"></a>01357       <span class="keywordtype">unsigned</span> DupReg = Dup->getOperand(Idx).getReg();
+<a name="l01358"></a>01358       OrigRCs.<a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(MRI->getRegClass(DupReg));
+<a name="l01359"></a>01359 
+<a name="l01360"></a>01360       <span class="keywordflow">if</span> (!MRI->constrainRegClass(DupReg, MRI->getRegClass(Reg))) {
+<a name="l01361"></a>01361         <span class="comment">// Restore old RCs if more than one defs.</span>
+<a name="l01362"></a>01362         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> j = 0; j != i; ++j)
+<a name="l01363"></a>01363           MRI->setRegClass(Dup->getOperand(Defs[j]).getReg(), OrigRCs[j]);
+<a name="l01364"></a>01364         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01365"></a>01365       }
+<a name="l01366"></a>01366     }
+<a name="l01367"></a>01367 
+<a name="l01368"></a>01368     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Defs.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>(); i != e; ++i) {
+<a name="l01369"></a>01369       <span class="keywordtype">unsigned</span> Idx = Defs[i];
+<a name="l01370"></a>01370       <span class="keywordtype">unsigned</span> Reg = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(Idx).<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>();
+<a name="l01371"></a>01371       <span class="keywordtype">unsigned</span> DupReg = Dup->getOperand(Idx).getReg();
+<a name="l01372"></a>01372       MRI->replaceRegWith(Reg, DupReg);
+<a name="l01373"></a>01373       MRI->clearKillFlags(DupReg);
+<a name="l01374"></a>01374     }
+<a name="l01375"></a>01375 
+<a name="l01376"></a>01376     MI-><a class="code" href="classllvm_1_1MachineInstr.html#ac2421adbb9996e1b15f03a8abb6c70a8">eraseFromParent</a>();
+<a name="l01377"></a>01377     ++NumCSEed;
+<a name="l01378"></a>01378     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l01379"></a>01379   }
+<a name="l01380"></a>01380   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01381"></a>01381 }
+<a name="l01382"></a>01382 <span class="comment"></span>
+<a name="l01383"></a>01383 <span class="comment">/// MayCSE - Return true if the given instruction will be CSE'd if it's</span>
+<a name="l01384"></a>01384 <span class="comment">/// hoisted out of the loop.</span>
+<a name="l01385"></a>01385 <span class="comment"></span><span class="keywordtype">bool</span> MachineLICM::MayCSE(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI) {
+<a name="l01386"></a>01386   <span class="keywordtype">unsigned</span> Opcode = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a242314c0ae0147d1a7ef54c9bc312616">getOpcode</a>();
+<a name="l01387"></a>01387   <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, std::vector<const MachineInstr*></a> ><a class="code" href="classstd_1_1iterator.html">::iterator</a>
+<a name="l01388"></a>01388     CI = CSEMap.find(Opcode);
+<a name="l01389"></a>01389   <span class="comment">// Do not CSE implicit_def so ProcessImplicitDefs can properly propagate</span>
+<a name="l01390"></a>01390   <span class="comment">// the undef property onto uses.</span>
+<a name="l01391"></a>01391   <span class="keywordflow">if</span> (CI == CSEMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>() || MI-><a class="code" href="classllvm_1_1MachineInstr.html#a0e15c0325463fc62bd16ccd9ec2b9ec5">isImplicitDef</a>())
+<a name="l01392"></a>01392     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01393"></a>01393 
+<a name="l01394"></a>01394   <span class="keywordflow">return</span> LookForDuplicate(MI, CI->second) != 0;
+<a name="l01395"></a>01395 }
+<a name="l01396"></a>01396 <span class="comment"></span>
+<a name="l01397"></a>01397 <span class="comment">/// Hoist - When an instruction is found to use only loop invariant operands</span>
+<a name="l01398"></a>01398 <span class="comment">/// that are safe to hoist, this instruction is called to do the dirty work.</span>
+<a name="l01399"></a>01399 <span class="comment">///</span>
+<a name="l01400"></a>01400 <span class="comment"></span><span class="keywordtype">bool</span> MachineLICM::Hoist(<a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *MI, <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Preheader) {
+<a name="l01401"></a>01401   <span class="comment">// First check whether we should hoist this instruction.</span>
+<a name="l01402"></a>01402   <span class="keywordflow">if</span> (!IsLoopInvariantInst(*MI) || !IsProfitableToHoist(*MI)) {
+<a name="l01403"></a>01403     <span class="comment">// If not, try unfolding a hoistable load.</span>
+<a name="l01404"></a>01404     MI = ExtractHoistableLoad(MI);
+<a name="l01405"></a>01405     <span class="keywordflow">if</span> (!MI) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01406"></a>01406   }
+<a name="l01407"></a>01407 
+<a name="l01408"></a>01408   <span class="comment">// Now move the instructions to the predecessor, inserting it before any</span>
+<a name="l01409"></a>01409   <span class="comment">// terminator instructions.</span>
+<a name="l01410"></a>01410   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>({
+<a name="l01411"></a>01411       <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Hoisting "</span> << *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>;
+<a name="l01412"></a>01412       <span class="keywordflow">if</span> (Preheader-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a2961c31b29db17a4f2964899c8569a64">getBasicBlock</a>())
+<a name="l01413"></a>01413         <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">" to MachineBasicBlock "</span>
+<a name="l01414"></a>01414                << Preheader-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a454838c989e99a86bd804e056c367bd9">getName</a>();
+<a name="l01415"></a>01415       <span class="keywordflow">if</span> (MI-><a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>()-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a2961c31b29db17a4f2964899c8569a64">getBasicBlock</a>())
+<a name="l01416"></a>01416         <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">" from MachineBasicBlock "</span>
+<a name="l01417"></a>01417                << MI-><a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>()-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a454838c989e99a86bd804e056c367bd9">getName</a>();
+<a name="l01418"></a>01418       <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"\n"</span>;
+<a name="l01419"></a>01419     });
+<a name="l01420"></a>01420 
+<a name="l01421"></a>01421   <span class="comment">// If this is the first instruction being hoisted to the preheader,</span>
+<a name="l01422"></a>01422   <span class="comment">// initialize the CSE map with potential common expressions.</span>
+<a name="l01423"></a>01423   <span class="keywordflow">if</span> (FirstInLoop) {
+<a name="l01424"></a>01424     InitCSEMap(Preheader);
+<a name="l01425"></a>01425     FirstInLoop = <span class="keyword">false</span>;
+<a name="l01426"></a>01426   }
+<a name="l01427"></a>01427 
+<a name="l01428"></a>01428   <span class="comment">// Look for opportunity to CSE the hoisted instruction.</span>
+<a name="l01429"></a>01429   <span class="keywordtype">unsigned</span> Opcode = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a242314c0ae0147d1a7ef54c9bc312616">getOpcode</a>();
+<a name="l01430"></a>01430   <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, std::vector<const MachineInstr*></a> ><a class="code" href="classstd_1_1iterator.html">::iterator</a>
+<a name="l01431"></a>01431     CI = CSEMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a21cf94357e53cd1069aba475266fdb63">find</a>(Opcode);
+<a name="l01432"></a>01432   <span class="keywordflow">if</span> (!EliminateCSE(MI, CI)) {
+<a name="l01433"></a>01433     <span class="comment">// Otherwise, splice the instruction to the preheader.</span>
+<a name="l01434"></a>01434     Preheader-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a4caec104f2ab9fe27e8fb0da33497635">splice</a>(Preheader-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a7f0521fa2de44271fd4b909ea7351ef3">getFirstTerminator</a>(),MI-><a class="code" href="classllvm_1_1MachineInstr.html#aabad9b72f6d20d3462efc34020d39f73">getParent</a>(),<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>);
+<a name="l01435"></a>01435 
+<a name="l01436"></a>01436     <span class="comment">// Update register pressure for BBs from header to this block.</span>
+<a name="l01437"></a>01437     UpdateBackTraceRegPressure(MI);
+<a name="l01438"></a>01438 
+<a name="l01439"></a>01439     <span class="comment">// Clear the kill flags of any register this instruction defines,</span>
+<a name="l01440"></a>01440     <span class="comment">// since they may need to be live throughout the entire loop</span>
+<a name="l01441"></a>01441     <span class="comment">// rather than just live for part of it.</span>
+<a name="l01442"></a>01442     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a7b5fe96d88954efc855e6c466207e535">getNumOperands</a>(); i != e; ++i) {
+<a name="l01443"></a>01443       <a class="code" href="classllvm_1_1MachineOperand.html">MachineOperand</a> &MO = MI-><a class="code" href="classllvm_1_1MachineInstr.html#a302e45878c6dc1714334c7ce96d56846">getOperand</a>(i);
+<a name="l01444"></a>01444       <span class="keywordflow">if</span> (MO.<a class="code" href="classllvm_1_1MachineOperand.html#ad8198d6d83af9410d867136e33fbf4b2" title="isReg - Tests if this is a MO_Register operand.">isReg</a>() && MO.<a class="code" href="classllvm_1_1MachineOperand.html#a8de7d5cf38939044471c6ee60a01a3df">isDef</a>() && !MO.<a class="code" href="classllvm_1_1MachineOperand.html#a196420aa839c2b21f42c4bf5c36df437">isDead</a>())
+<a name="l01445"></a>01445         MRI->clearKillFlags(MO.<a class="code" href="classllvm_1_1MachineOperand.html#ab75f703d251cc0ce0206fe00a999db86" title="getReg - Returns the register number.">getReg</a>());
+<a name="l01446"></a>01446     }
+<a name="l01447"></a>01447 
+<a name="l01448"></a>01448     <span class="comment">// Add to the CSE map.</span>
+<a name="l01449"></a>01449     <span class="keywordflow">if</span> (CI != CSEMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>())
+<a name="l01450"></a>01450       CI->second.push_back(MI);
+<a name="l01451"></a>01451     <span class="keywordflow">else</span> {
+<a name="l01452"></a>01452       std::vector<const MachineInstr*> CSEMIs;
+<a name="l01453"></a>01453       CSEMIs.push_back(MI);
+<a name="l01454"></a>01454       CSEMap.<a class="code" href="classllvm_1_1DenseMapBase.html#a699a66e504b48fdeff124e82f6c61917">insert</a>(std::make_pair(Opcode, CSEMIs));
+<a name="l01455"></a>01455     }
+<a name="l01456"></a>01456   }
+<a name="l01457"></a>01457 
+<a name="l01458"></a>01458   ++NumHoisted;
+<a name="l01459"></a>01459   Changed = <span class="keyword">true</span>;
+<a name="l01460"></a>01460 
+<a name="l01461"></a>01461   <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l01462"></a>01462 }
+<a name="l01463"></a>01463 
+<a name="l01464"></a>01464 <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MachineLICM::getCurPreheader() {
+<a name="l01465"></a>01465   <span class="comment">// Determine the block to which to hoist instructions. If we can't find a</span>
+<a name="l01466"></a>01466   <span class="comment">// suitable loop predecessor, we can't do any hoisting.</span>
+<a name="l01467"></a>01467 
+<a name="l01468"></a>01468   <span class="comment">// If we've tried to get a preheader and failed, don't try again.</span>
+<a name="l01469"></a>01469   <span class="keywordflow">if</span> (CurPreheader == reinterpret_cast<MachineBasicBlock *>(-1))
+<a name="l01470"></a>01470     <span class="keywordflow">return</span> 0;
+<a name="l01471"></a>01471 
+<a name="l01472"></a>01472   <span class="keywordflow">if</span> (!CurPreheader) {
+<a name="l01473"></a>01473     CurPreheader = CurLoop->getLoopPreheader();
+<a name="l01474"></a>01474     <span class="keywordflow">if</span> (!CurPreheader) {
+<a name="l01475"></a>01475       <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *Pred = CurLoop->getLoopPredecessor();
+<a name="l01476"></a>01476       <span class="keywordflow">if</span> (!Pred) {
+<a name="l01477"></a>01477         CurPreheader = <span class="keyword">reinterpret_cast<</span><a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *<span class="keyword">></span>(-1);
+<a name="l01478"></a>01478         <span class="keywordflow">return</span> 0;
+<a name="l01479"></a>01479       }
+<a name="l01480"></a>01480 
+<a name="l01481"></a>01481       CurPreheader = Pred-><a class="code" href="classllvm_1_1MachineBasicBlock.html#af93cadf3685e509daac270c8cfd2b52f">SplitCriticalEdge</a>(CurLoop->getHeader(), <span class="keyword">this</span>);
+<a name="l01482"></a>01482       <span class="keywordflow">if</span> (!CurPreheader) {
+<a name="l01483"></a>01483         CurPreheader = <span class="keyword">reinterpret_cast<</span><a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *<span class="keyword">></span>(-1);
+<a name="l01484"></a>01484         <span class="keywordflow">return</span> 0;
+<a name="l01485"></a>01485       }
+<a name="l01486"></a>01486     }
+<a name="l01487"></a>01487   }
+<a name="l01488"></a>01488   <span class="keywordflow">return</span> CurPreheader;
+<a name="l01489"></a>01489 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:35:35 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineLocation_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineLocation_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineLocation_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineLocation_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineLocation.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_6acfa0788722cd7f252c15e33dfdaa52.html">MC</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">MachineLocation.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dyncontent">
+<div class="center"><img src="MachineLocation_8h__dep__incl.png" border="0" usemap="#MachineLocation_8hdep" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="MachineLocation_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1MachineLocation.html">llvm::MachineLocation</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1MachineMove.html">llvm::MachineMove</a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html">llvm</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>List of target independent CodeGen pass IDs. </p>
+<br/></td></tr>
+</table>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:31 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineLocation_8h__dep__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineLocation_8h__dep__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MachineLocation_8h__dep__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineLoopInfo_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineLoopInfo_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineLoopInfo_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineLoopInfo_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineLoopInfo.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_33f9015af551a3c03ac5a968f2023d57.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">MachineLoopInfo.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="MachineFunctionPass_8h_source.html">llvm/CodeGen/MachineFunctionPass.h</a>"</code><br/>
+<code>#include "<a class="el" href="LoopInfo_8h_source.html">llvm/Analysis/LoopInfo.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for MachineLoopInfo.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="MachineLoopInfo_8h__incl.png" border="0" usemap="#MachineLoopInfo_8h" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div><div class="textblock"><div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dyncontent">
+<div class="center"><img src="MachineLoopInfo_8h__dep__incl.png" border="0" usemap="#MachineLoopInfo_8hdep" alt=""/></div>
+<!-- MAP 1 -->
+</div>
+</div>
+<p><a href="MachineLoopInfo_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1MachineLoop.html">llvm::MachineLoop</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1MachineLoopInfo.html">llvm::MachineLoopInfo</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structllvm_1_1GraphTraits_3_01const_01MachineLoop_01_5_01_4.html">llvm::GraphTraits< const MachineLoop * ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structllvm_1_1GraphTraits_3_01MachineLoop_01_5_01_4.html">llvm::GraphTraits< MachineLoop * ></a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html">llvm</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>List of target independent CodeGen pass IDs. </p>
+<br/></td></tr>
+</table>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:31 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineLoopInfo_8h__dep__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineLoopInfo_8h__dep__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/MachineLoopInfo_8h__dep__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineLoopInfo_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineLoopInfo_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineLoopInfo_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineLoopInfo_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,171 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineLoopInfo.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/CodeGen/MachineFunctionPass.h",height=0.2,width=0.4,color="black",URL="$MachineFunctionPass_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="black",URL="$PassSupport_8h.html"];
+  Node6 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/PassRegistry.h",height=0.2,width=0.4,color="black",URL="$PassRegistry_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node9 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/InitializePasses.h",height=0.2,width=0.4,color="black",URL="$InitializePasses_8h.html"];
+  Node6 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/Support/Atomic.h",height=0.2,width=0.4,color="black",URL="$Atomic_8h.html"];
+  Node17 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/Support/Valgrind.h",height=0.2,width=0.4,color="red",URL="$Valgrind_8h.html"];
+  Node18 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="black",URL="$PassAnalysisSupport_8h.html"];
+  Node20 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node22 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node20 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Analysis/LoopInfo.h",height=0.2,width=0.4,color="black",URL="$LoopInfo_8h.html"];
+  Node26 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="black",URL="$DenseMap_8h.html"];
+  Node27 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="black",URL="$MathExtras_8h.html"];
+  Node28 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/Support/SwapByteOrder.h",height=0.2,width=0.4,color="red",URL="$SwapByteOrder_8h.html"];
+  Node29 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node30 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node31 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="new",height=0.2,width=0.4,color="grey75"];
+  Node27 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node27 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/ADT/DenseSet.h",height=0.2,width=0.4,color="black",URL="$DenseSet_8h.html"];
+  Node34 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/ADT/DepthFirstIterator.h",height=0.2,width=0.4,color="black",URL="$DepthFirstIterator_8h.html"];
+  Node35 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node35 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/ADT/SmallPtrSet.h",height=0.2,width=0.4,color="black",URL="$SmallPtrSet_8h.html"];
+  Node37 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="black",URL="$PointerIntPair_8h.html"];
+  Node38 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="set",height=0.2,width=0.4,color="grey75"];
+  Node35 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="black",URL="$STLExtras_8h.html"];
+  Node40 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node40 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/Analysis/Dominators.h",height=0.2,width=0.4,color="black",URL="$Dominators_8h.html"];
+  Node42 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/Function.h",height=0.2,width=0.4,color="red",URL="$Function_8h.html"];
+  Node43 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/GlobalValue.h",height=0.2,width=0.4,color="red",URL="$GlobalValue_8h.html"];
+  Node43 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node43 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/BasicBlock.h",height=0.2,width=0.4,color="red",URL="$BasicBlock_8h.html"];
+  Node46 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Support/CFG.h",height=0.2,width=0.4,color="black",URL="$CFG_8h.html"];
+  Node47 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/InstrTypes.h",height=0.2,width=0.4,color="red",URL="$InstrTypes_8h.html"];
+  Node42 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node49 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="map",height=0.2,width=0.4,color="grey75"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,187 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="MachineLoopRanges.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/CodeGen/MachineLoopRanges.h",height=0.2,width=0.4,color="black",URL="$MachineLoopRanges_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/ADT/IntervalMap.h",height=0.2,width=0.4,color="black",URL="$IntervalMap_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node5 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="red",URL="$type__traits_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node8 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="black",URL="$PointerIntPair_8h.html"];
+  Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node17 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="black",URL="$Allocator_8h.html"];
+  Node18 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="red",URL="$MathExtras_8h.html"];
+  Node18 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/Support/RecyclingAllocator.h",height=0.2,width=0.4,color="black",URL="$RecyclingAllocator_8h.html"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/Support/Recycler.h",height=0.2,width=0.4,color="red",URL="$Recycler_8h.html"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="black",URL="$ilist_8h.html"];
+  Node22 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/CodeGen/SlotIndexes.h",height=0.2,width=0.4,color="black",URL="$SlotIndexes_8h.html"];
+  Node23 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/CodeGen/MachineInstrBundle.h",height=0.2,width=0.4,color="black",URL="$MachineInstrBundle_8h.html"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="red",URL="$MachineBasicBlock_8h.html"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node25 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/CodeGen/MachineFunction.h",height=0.2,width=0.4,color="black",URL="$MachineFunction_8h.html"];
+  Node27 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node27 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/CodeGen/MachineFunctionPass.h",height=0.2,width=0.4,color="black",URL="$MachineFunctionPass_8h.html"];
+  Node29 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node30 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node30 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="red",URL="$PassSupport_8h.html"];
+  Node32 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="red",URL="$PassAnalysisSupport_8h.html"];
+  Node33 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node34 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="red",URL="$DenseMap_8h.html"];
+  Node35 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/CodeGen/MachineLoopInfo.h",height=0.2,width=0.4,color="black",URL="$MachineLoopInfo_8h.html"];
+  Node36 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/Analysis/LoopInfo.h",height=0.2,width=0.4,color="black",URL="$LoopInfo_8h.html"];
+  Node37 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/ADT/DenseSet.h",height=0.2,width=0.4,color="black",URL="$DenseSet_8h.html"];
+  Node38 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/ADT/DepthFirstIterator.h",height=0.2,width=0.4,color="red",URL="$DepthFirstIterator_8h.html"];
+  Node39 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="red",URL="$STLExtras_8h.html"];
+  Node40 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/Analysis/Dominators.h",height=0.2,width=0.4,color="red",URL="$Dominators_8h.html"];
+  Node41 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/Support/CFG.h",height=0.2,width=0.4,color="red",URL="$CFG_8h.html"];
+  Node42 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node43 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="map",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/CodeGen/Passes.h",height=0.2,width=0.4,color="black",URL="$CodeGen_2Passes_8h.html"];
+  Node45 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Target/TargetMachine.h",height=0.2,width=0.4,color="black",URL="$Target_2TargetMachine_8h.html"];
+  Node46 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Support/CodeGen.h",height=0.2,width=0.4,color="black",URL="$CodeGen_8h.html"];
+  Node46 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/Target/TargetOptions.h",height=0.2,width=0.4,color="black",URL="$TargetOptions_8h.html"];
+  Node48 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/TargetTransformInfo.h",height=0.2,width=0.4,color="red",URL="$TargetTransformInfo_8h.html"];
+  Node49 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/Target/TargetTransformImpl.h",height=0.2,width=0.4,color="red",URL="$TargetTransformImpl_8h.html"];
+  Node50 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: MachineLoopRanges.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_f2244d21cf8bec63d11bfc1ad661d96f.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">MachineLoopRanges.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="MachineLoopRanges_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===- MachineLoopRanges.cpp - Ranges of machine loops --------------------===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file provides the implementation of the MachineLoopRanges analysis.</span>
+<a name="l00011"></a>00011 <span class="comment">//</span>
+<a name="l00012"></a>00012 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="preprocessor">#include "<a class="code" href="MachineLoopRanges_8h.html">llvm/CodeGen/MachineLoopRanges.h</a>"</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include "<a class="code" href="MachineLoopInfo_8h.html">llvm/CodeGen/MachineLoopInfo.h</a>"</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="CodeGen_2Passes_8h.html">llvm/CodeGen/Passes.h</a>"</span>
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 <span class="keyword">using namespace </span>llvm;
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 <span class="keywordtype">char</span> <a class="code" href="classllvm_1_1MachineLoopRanges.html#aedac01e642a6d80363ccf621ce2fede9">MachineLoopRanges::ID</a> = 0;
+<a name="l00021"></a>00021 <a class="code" href="PassSupport_8h.html#aaa970fc931c1c63037a8182e028d04b1">INITIALIZE_PASS_BEGIN</a>(<a class="code" href="classllvm_1_1MachineLoopRanges.html">MachineLoopRanges</a>, <span class="stringliteral">"machine-loop-ranges"</span>,
+<a name="l00022"></a>00022                 <span class="stringliteral">"Machine Loop Ranges"</span>, <span class="keyword">true</span>, <span class="keyword">true</span>)
+<a name="l00023"></a>00023 <a class="code" href="PassSupport_8h.html#a14724f1ccf528e73bb29bc9230737967">INITIALIZE_PASS_DEPENDENCY</a>(<a class="code" href="classllvm_1_1SlotIndexes.html">SlotIndexes</a>)
+<a name="l00024"></a>00024 <a class="code" href="PassSupport_8h.html#a14724f1ccf528e73bb29bc9230737967">INITIALIZE_PASS_DEPENDENCY</a>(<a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a>)
+<a name="l00025"></a><a class="code" href="MachineLoopRanges_8cpp.html#a88aedf916883d6d4676a9a1d995c6705">00025</a> <a class="code" href="PassSupport_8h.html#a74ce8276b89067e806f67c45a6d92575">INITIALIZE_PASS_END</a>(<a class="code" href="classllvm_1_1MachineLoopRanges.html">MachineLoopRanges</a>, "machine-loop-<a class="code" href="MachineLoopRanges_8cpp.html#a0c409869f8c4c384da5bc6e83136afd1">ranges</a>",
+<a name="l00026"></a>00026                 "Machine <a class="code" href="classllvm_1_1Loop.html">Loop</a> <a class="code" href="MachineLoopRanges_8cpp.html#a13a811df4825530d4cdfe42f808979fa">Ranges</a>", <a class="code" href="BasicAliasAnalysis_8cpp.html#a80603f23207dd836075c078e6264204a">true</a>, true)
+<a name="l00027"></a>00027 
+<a name="l00028"></a><a class="code" href="namespacellvm.html#a6d42cb4fe47c2e686e58d329db59d1d3">00028</a> <span class="keywordtype">char</span> &llvm::<a class="code" href="namespacellvm.html#a6d42cb4fe47c2e686e58d329db59d1d3" title="MachineLoopRanges - This pass is an on-demand loop coverage analysis.">MachineLoopRangesID</a> = MachineLoopRanges::<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>;
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 <span class="keywordtype">void</span> MachineLoopRanges::getAnalysisUsage(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU)<span class="keyword"> const </span>{
+<a name="l00031"></a>00031   AU.setPreservesAll();
+<a name="l00032"></a>00032   AU.addRequiredTransitive<<a class="code" href="classllvm_1_1SlotIndexes.html">SlotIndexes</a>>();
+<a name="l00033"></a>00033   AU.addRequiredTransitive<<a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a>>();
+<a name="l00034"></a>00034   <a class="code" href="classllvm_1_1MachineFunctionPass.html#aa1eece37d175f86a6f4808c0c167f13b">MachineFunctionPass::getAnalysisUsage</a>(AU);
+<a name="l00035"></a>00035 }
+<a name="l00036"></a>00036 <span class="comment"></span>
+<a name="l00037"></a>00037 <span class="comment">/// runOnMachineFunction - Don't do much, loop ranges are computed on demand.</span>
+<a name="l00038"></a>00038 <span class="comment"></span><span class="keywordtype">bool</span> MachineLoopRanges::runOnMachineFunction(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &) {
+<a name="l00039"></a>00039   releaseMemory();
+<a name="l00040"></a>00040   Indexes = &getAnalysis<SlotIndexes>();
+<a name="l00041"></a>00041   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00042"></a>00042 }
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="keywordtype">void</span> MachineLoopRanges::releaseMemory() {
+<a name="l00045"></a>00045   <a class="code" href="namespacellvm.html#a96a5dc88796db7b459ff5b8d43fd9c82">DeleteContainerSeconds</a>(Cache);
+<a name="l00046"></a>00046   Cache.<a class="code" href="classllvm_1_1DenseMapBase.html#a6467bd6bb128c8b69a478548fc17351c">clear</a>();
+<a name="l00047"></a>00047 }
+<a name="l00048"></a>00048 
+<a name="l00049"></a><a class="code" href="classllvm_1_1MachineLoopRanges.html#a4e57856aca3d3232985b9f1dbd190b81">00049</a> <a class="code" href="classllvm_1_1MachineLoopRange.html" title="MachineLoopRange - Range information for a single loop.">MachineLoopRange</a> *<a class="code" href="classllvm_1_1MachineLoopRanges.html#a4e57856aca3d3232985b9f1dbd190b81" title="getLoopRange - Return the range of loop.">MachineLoopRanges::getLoopRange</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> *<a class="code" href="classllvm_1_1Loop.html">Loop</a>) {
+<a name="l00050"></a>00050   <a class="code" href="classllvm_1_1MachineLoopRange.html" title="MachineLoopRange - Range information for a single loop.">MachineLoopRange</a> *&Range = Cache[<a class="code" href="namespacellvm_1_1GC.html#a5f606a2b04c809f789a574660cd25213a960eba6a93af558b44d3d14e8393d324" title="Instr is a loop (backwards branch).">Loop</a>];
+<a name="l00051"></a>00051   <span class="keywordflow">if</span> (!Range)
+<a name="l00052"></a>00052     Range = <span class="keyword">new</span> <a class="code" href="classllvm_1_1MachineLoopRange.html" title="MachineLoopRange - Range information for a single loop.">MachineLoopRange</a>(Loop, Allocator, *Indexes);
+<a name="l00053"></a>00053   <span class="keywordflow">return</span> Range;
+<a name="l00054"></a>00054 }
+<a name="l00055"></a>00055 <span class="comment"></span>
+<a name="l00056"></a>00056 <span class="comment">/// Create a MachineLoopRange, only accessible to MachineLoopRanges.</span>
+<a name="l00057"></a>00057 <span class="comment"></span>MachineLoopRange::MachineLoopRange(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> *loop,
+<a name="l00058"></a>00058                                    <a class="code" href="classllvm_1_1RecyclingAllocator.html">MachineLoopRange::Allocator</a> &alloc,
+<a name="l00059"></a>00059                                    <a class="code" href="classllvm_1_1SlotIndexes.html">SlotIndexes</a> &Indexes)
+<a name="l00060"></a>00060   : <a class="code" href="classllvm_1_1Loop.html">Loop</a>(loop), Intervals(alloc), Area(0) {
+<a name="l00061"></a>00061   <span class="comment">// Compute loop coverage.</span>
+<a name="l00062"></a>00062   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1LoopBase.html#ab39f9623eaa8cd22213aa716c6fb9994">MachineLoop::block_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = <a class="code" href="classllvm_1_1Loop.html">Loop</a>-><a class="code" href="classllvm_1_1LoopBase.html#a3df1c508a7b1c89247367cab269076e2">block_begin</a>(),
+<a name="l00063"></a>00063          E = <a class="code" href="classllvm_1_1Loop.html">Loop</a>-><a class="code" href="classllvm_1_1LoopBase.html#a91e3f5f9bf6ecbd058624a479e150603">block_end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00064"></a>00064     <span class="keyword">const</span> std::pair<SlotIndex, SlotIndex> &Range = Indexes.<a class="code" href="classllvm_1_1SlotIndexes.html#a5df15b1a3292f8f645dbfa4612e96f6c" title="Return the (start,end) range of the given basic block number.">getMBBRange</a>(*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l00065"></a>00065     Intervals.insert(Range.first, Range.second, 1u);
+<a name="l00066"></a>00066     Area += Range.first.distance(Range.second);
+<a name="l00067"></a>00067   }
+<a name="l00068"></a>00068 }
+<a name="l00069"></a>00069 <span class="comment"></span>
+<a name="l00070"></a>00070 <span class="comment">/// overlaps - Return true if this loop overlaps the given range of machine</span>
+<a name="l00071"></a>00071 <span class="comment">/// instructions.</span>
+<a name="l00072"></a><a class="code" href="classllvm_1_1MachineLoopRange.html#a4274a2b1d538eab50f6dbb5da2548082">00072</a> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1MachineLoopRange.html#a4274a2b1d538eab50f6dbb5da2548082">MachineLoopRange::overlaps</a>(<a class="code" href="classllvm_1_1SlotIndex.html" title="SlotIndex - An opaque wrapper around machine indexes.">SlotIndex</a> Start, <a class="code" href="classllvm_1_1SlotIndex.html" title="SlotIndex - An opaque wrapper around machine indexes.">SlotIndex</a> Stop) {
+<a name="l00073"></a>00073   <a class="code" href="classllvm_1_1IntervalMap.html#ac220ce1c155db1ac44146c12d178056f">Map::const_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = Intervals.<a class="code" href="classllvm_1_1IntervalMap.html#a22d1210e84586511677b003248e68a1f">find</a>(Start);
+<a name="l00074"></a>00074   <span class="keywordflow">return</span> I.valid() && Stop > I.start();
+<a name="l00075"></a>00075 }
+<a name="l00076"></a>00076 
+<a name="l00077"></a><a class="code" href="classllvm_1_1MachineLoopRange.html#ac9b46f5fc372d8b5b25d997ae29c09ed">00077</a> <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1MachineLoopRange.html#ac9b46f5fc372d8b5b25d997ae29c09ed">MachineLoopRange::getNumber</a>()<span class="keyword"> const </span>{
+<a name="l00078"></a>00078   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1Loop.html">Loop</a>-><a class="code" href="classllvm_1_1LoopBase.html#ac4f141a355e5898255f2cbc57c5b54c3">getHeader</a>()->getNumber();
+<a name="l00079"></a>00079 }
+<a name="l00080"></a>00080 <span class="comment"></span>
+<a name="l00081"></a>00081 <span class="comment">/// byNumber - Comparator for array_pod_sort that sorts a list of</span>
+<a name="l00082"></a>00082 <span class="comment">/// MachineLoopRange pointers by number.</span>
+<a name="l00083"></a><a class="code" href="classllvm_1_1MachineLoopRange.html#a0cfe86c106c54d5eb4a2155c232150a9">00083</a> <span class="comment"></span><span class="keywordtype">int</span> <a class="code" href="classllvm_1_1MachineLoopRange.html#a0cfe86c106c54d5eb4a2155c232150a9">MachineLoopRange::byNumber</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *pa, <span class="keyword">const</span> <span class="keywordtype">void</span> *pb) {
+<a name="l00084"></a>00084   <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineLoopRange.html" title="MachineLoopRange - Range information for a single loop.">MachineLoopRange</a> *a = *<span class="keyword">static_cast<</span><a class="code" href="classllvm_1_1MachineLoopRange.html" title="MachineLoopRange - Range information for a single loop.">MachineLoopRange</a> *<span class="keyword">const </span>*<span class="keyword">></span>(pa);
+<a name="l00085"></a>00085   <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineLoopRange.html" title="MachineLoopRange - Range information for a single loop.">MachineLoopRange</a> *b = *<span class="keyword">static_cast<</span><a class="code" href="classllvm_1_1MachineLoopRange.html" title="MachineLoopRange - Range information for a single loop.">MachineLoopRange</a> *<span class="keyword">const </span>*<span class="keyword">></span>(pb);
+<a name="l00086"></a>00086   <span class="keywordtype">unsigned</span> na = a-><a class="code" href="classllvm_1_1MachineLoopRange.html#ac9b46f5fc372d8b5b25d997ae29c09ed">getNumber</a>();
+<a name="l00087"></a>00087   <span class="keywordtype">unsigned</span> nb = b-><a class="code" href="classllvm_1_1MachineLoopRange.html#ac9b46f5fc372d8b5b25d997ae29c09ed">getNumber</a>();
+<a name="l00088"></a>00088   <span class="keywordflow">if</span> (na < nb)
+<a name="l00089"></a>00089     <span class="keywordflow">return</span> -1;
+<a name="l00090"></a>00090   <span class="keywordflow">if</span> (na > nb)
+<a name="l00091"></a>00091     <span class="keywordflow">return</span> 1;
+<a name="l00092"></a>00092   <span class="keywordflow">return</span> 0;
+<a name="l00093"></a>00093 }
+<a name="l00094"></a>00094 <span class="comment"></span>
+<a name="l00095"></a>00095 <span class="comment">/// byAreaDesc - Comparator for array_pod_sort that sorts a list of</span>
+<a name="l00096"></a>00096 <span class="comment">/// MachineLoopRange pointers by:</span>
+<a name="l00097"></a>00097 <span class="comment">/// 1. Descending area.</span>
+<a name="l00098"></a>00098 <span class="comment">/// 2. Ascending number.</span>
+<a name="l00099"></a><a class="code" href="classllvm_1_1MachineLoopRange.html#aef16d75e848a6bf560f6bfab4993385b">00099</a> <span class="comment"></span><span class="keywordtype">int</span> <a class="code" href="classllvm_1_1MachineLoopRange.html#aef16d75e848a6bf560f6bfab4993385b">MachineLoopRange::byAreaDesc</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *pa, <span class="keyword">const</span> <span class="keywordtype">void</span> *pb) {
+<a name="l00100"></a>00100   <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineLoopRange.html" title="MachineLoopRange - Range information for a single loop.">MachineLoopRange</a> *a = *<span class="keyword">static_cast<</span><a class="code" href="classllvm_1_1MachineLoopRange.html" title="MachineLoopRange - Range information for a single loop.">MachineLoopRange</a> *<span class="keyword">const </span>*<span class="keyword">></span>(pa);
+<a name="l00101"></a>00101   <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineLoopRange.html" title="MachineLoopRange - Range information for a single loop.">MachineLoopRange</a> *b = *<span class="keyword">static_cast<</span><a class="code" href="classllvm_1_1MachineLoopRange.html" title="MachineLoopRange - Range information for a single loop.">MachineLoopRange</a> *<span class="keyword">const </span>*<span class="keyword">></span>(pb);
+<a name="l00102"></a>00102   <span class="keywordflow">if</span> (a-><a class="code" href="classllvm_1_1MachineLoopRange.html#a92999d4614294d164f96eee3e196b544">getArea</a>() != b-><a class="code" href="classllvm_1_1MachineLoopRange.html#a92999d4614294d164f96eee3e196b544">getArea</a>())
+<a name="l00103"></a>00103     <span class="keywordflow">return</span> a-><a class="code" href="classllvm_1_1MachineLoopRange.html#a92999d4614294d164f96eee3e196b544">getArea</a>() > b-><a class="code" href="classllvm_1_1MachineLoopRange.html#a92999d4614294d164f96eee3e196b544">getArea</a>() ? -1 : 1;
+<a name="l00104"></a>00104   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1MachineLoopRange.html#a0cfe86c106c54d5eb4a2155c232150a9">byNumber</a>(pa, pb);
+<a name="l00105"></a>00105 }
+<a name="l00106"></a>00106 
+<a name="l00107"></a><a class="code" href="classllvm_1_1MachineLoopRange.html#a85f0d0cc6bea956c2994261657d299a3">00107</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1MachineLoopRange.html#a85f0d0cc6bea956c2994261657d299a3" title="print - Print loop ranges on OS.">MachineLoopRange::print</a>(<a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &OS)<span class="keyword"> const </span>{
+<a name="l00108"></a>00108   OS << <span class="stringliteral">"Loop#"</span> << <a class="code" href="classllvm_1_1MachineLoopRange.html#ac9b46f5fc372d8b5b25d997ae29c09ed">getNumber</a>() << <span class="stringliteral">" ="</span>;
+<a name="l00109"></a>00109   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1IntervalMap.html#ac220ce1c155db1ac44146c12d178056f">Map::const_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = Intervals.<a class="code" href="classllvm_1_1IntervalMap.html#aaa6329ac17c770c00c849c74fbe1c7b4">begin</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>.valid(); ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00110"></a>00110     OS << <span class="stringliteral">" ["</span> << <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>.start() << <span class="charliteral">';'</span> << <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>.stop() << <span class="charliteral">')'</span>;
+<a name="l00111"></a>00111 }
+<a name="l00112"></a>00112 
+<a name="l00113"></a><a class="code" href="namespacellvm.html#a99e79650b3b139ce05cbf6e75eb4eeaf">00113</a> <a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &<a class="code" href="namespacellvm.html#a6a02d446812b76c3b271d9e3e3c77b49">llvm::operator<<</a>(<a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &OS, <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineLoopRange.html" title="MachineLoopRange - Range information for a single loop.">MachineLoopRange</a> &MLR) {
+<a name="l00114"></a>00114   MLR.<a class="code" href="classllvm_1_1MachineLoopRange.html#a85f0d0cc6bea956c2994261657d299a3" title="print - Print loop ranges on OS.">print</a>(OS);
+<a name="l00115"></a>00115   <span class="keywordflow">return</span> OS;
+<a name="l00116"></a>00116 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:35:36 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8h__dep__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8h__dep__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8h__dep__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8h__dep__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,4 @@
+<map id="G" name="G">
+<area shape="rect" href="$LiveIntervalUnion_8cpp.html" title="LiveIntervalUnion.cpp" alt="" coords="5,84,163,111"/>
+<area shape="rect" href="$MachineLoopRanges_8cpp.html" title="MachineLoopRanges.cpp" alt="" coords="187,84,365,111"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8h__dep__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8h__dep__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8h__dep__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/MachineLoopRanges_8h__dep__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+c441224163565a747952e227c3e70564
\ No newline at end of file





More information about the llvm-commits mailing list