[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