<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div>I used bug point to reduce the testing case and did some manual cleanup.<div>I will to try to use a shorter name for types.</div><div><br></div><div>Thanks,</div><div>Manman</div><div><br><div><div>On Jul 15, 2013, at 9:24 PM, Bob Wilson wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=windows-1252"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Please try to further reduce the test case.  At the very least, there’s no reasons for the types to have such long names.<div><br><div><div>On Jul 15, 2013, at 4:47 PM, Manman Ren <<a href="mailto:mren@apple.com">mren@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Author: mren<br>Date: Mon Jul 15 18:47:29 2013<br>New Revision: 186364<br><br>URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project?rev=186364&view=rev">http://llvm.org/viewvc/llvm-project?rev=186364&view=rev</a><br>Log:<br>PEI: Support for non-zero SPAdj at beginning of a basic block.<br><br>We can have a FrameSetup in one basic block and the matching FrameDestroy<br>in a different basic block when we have struct byval. In that case, SPAdj<br>is not zero at beginning of the basic block.<br><br>Modify PEI to correctly set SPAdj at beginning of each basic block using<br>DFS traversal. We used to assume SPAdj is 0 at beginning of each basic block.<br><br>PEI had an assert SPAdjCount || SPAdj == 0.<br>If we have a Destroy <n> followed by a Setup <m>, PEI will assert failure.<br>We can add an extra condition to make sure the pairs are matched:<br> The pairs start with a FrameSetup.<br>But since we are doing a much better job in the verifier, this patch removes<br>the check in PEI.<br><br>PR16393<br><br>Added:<br>   llvm/trunk/test/CodeGen/ARM/2013-06-03-ByVal-2Kbytes.ll<br>   llvm/trunk/test/CodeGen/ARM/struct-byval-frame-index.ll<br>Modified:<br>   llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp<br><br>Modified: llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp<br>URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp?rev=186364&r1=186363&r2=186364&view=diff">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp?rev=186364&r1=186363&r2=186364&view=diff</a><br>==============================================================================<br>--- llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp (original)<br>+++ llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp Mon Jul 15 18:47:29 2013<br>@@ -728,7 +728,33 @@ void PEI::insertPrologEpilogCode(Machine<br>void PEI::replaceFrameIndices(MachineFunction &Fn) {<br>  if (!Fn.getFrameInfo()->hasStackObjects()) return; // Nothing to do?<br><br>+  // Store SPAdj at exit of a basic block.<br>+  SmallVector<int, 8> SPState;<br>+  SPState.resize(Fn.getNumBlockIDs());<br>+  SmallPtrSet<MachineBasicBlock*, 8> Reachable;<br>+<br>+  // Iterate over the reachable blocks in DFS order.<br>+  for (df_ext_iterator<MachineFunction*, SmallPtrSet<MachineBasicBlock*, 8> ><br>+       DFI = df_ext_begin(&Fn, Reachable), DFE = df_ext_end(&Fn, Reachable);<br>+       DFI != DFE; ++DFI) {<br>+    int SPAdj = 0;<br>+    // Check the exit state of the DFS stack predecessor.<br>+    if (DFI.getPathLength() >= 2) {<br>+      MachineBasicBlock *StackPred = DFI.getPath(DFI.getPathLength() - 2);<br>+      assert(Reachable.count(StackPred) &&<br>+             "DFS stack predecessor is already visited.\n");<br>+      SPAdj = SPState[StackPred->getNumber()];<br>+    }<br>+    MachineBasicBlock *BB = *DFI;<br>+    replaceFrameIndices(BB, Fn, SPAdj);<br>+    SPState[BB->getNumber()] = SPAdj;<br>+  }<br>+<br>+  // Handle the unreachable blocks.<br>  for (MachineFunction::iterator BB = Fn.begin(), E = Fn.end(); BB != E; ++BB) {<br>+    if (Reachable.count(BB))<br>+      // Already handled in DFS traversal.<br>+      continue;<br>    int SPAdj = 0;<br>    replaceFrameIndices(BB, Fn, SPAdj);<br>  }<br>@@ -746,19 +772,12 @@ void PEI::replaceFrameIndices(MachineBas<br>  int FrameSetupOpcode   = TII.getCallFrameSetupOpcode();<br>  int FrameDestroyOpcode = TII.getCallFrameDestroyOpcode();<br><br>-#ifndef NDEBUG<br>-  int SPAdjCount = 0; // frame setup / destroy count.<br>-#endif<br>  if (RS && !FrameIndexVirtualScavenging) RS->enterBasicBlock(BB);<br><br>  for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) {<br><br>    if (I->getOpcode() == FrameSetupOpcode ||<br>        I->getOpcode() == FrameDestroyOpcode) {<br>-#ifndef NDEBUG<br>-      // Track whether we see even pairs of them<br>-      SPAdjCount += I->getOpcode() == FrameSetupOpcode ? 1 : -1;<br>-#endif<br>      // Remember how much SP has been adjusted to create the call<br>      // frame.<br>      int Size = I->getOperand(0).getImm();<br>@@ -833,14 +852,6 @@ void PEI::replaceFrameIndices(MachineBas<br>    // Update register states.<br>    if (RS && !FrameIndexVirtualScavenging && MI) RS->forward(MI);<br>  }<br>-<br>-  // If we have evenly matched pairs of frame setup / destroy instructions,<br>-  // make sure the adjustments come out to zero. If we don't have matched<br>-  // pairs, we can't be sure the missing bit isn't in another basic block<br>-  // due to a custom inserter playing tricks, so just asserting SPAdj==0<br>-  // isn't sufficient. See tMOVCC on Thumb1, for example.<br>-  assert((SPAdjCount || SPAdj == 0) &&<br>-         "Unbalanced call frame setup / destroy pairs?");<br>}<br><br>/// scavengeFrameVirtualRegs - Replace all frame index virtual registers<br><br>Added: llvm/trunk/test/CodeGen/ARM/2013-06-03-ByVal-2Kbytes.ll<br>URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/2013-06-03-ByVal-2Kbytes.ll?rev=186364&view=auto">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/2013-06-03-ByVal-2Kbytes.ll?rev=186364&view=auto</a><br>==============================================================================<br>--- llvm/trunk/test/CodeGen/ARM/2013-06-03-ByVal-2Kbytes.ll (added)<br>+++ llvm/trunk/test/CodeGen/ARM/2013-06-03-ByVal-2Kbytes.ll Mon Jul 15 18:47:29 2013<br>@@ -0,0 +1,30 @@<br>+; RUN: llc < %s -mcpu=cortex-a15 | FileCheck %s<br>+; ModuleID = 'attri_16.c'<br>+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:64:128-a0:0:64-n32-S64"<br>+target triple = "armv4t--linux-gnueabihf"<br>+<br>+%big_struct0 = type { [517 x i32] }<br>+%big_struct1 = type { [516 x i32] }<br>+<br>+;CHECK: f:<br>+define void @f(%big_struct0* %p0, %big_struct1* %p1) {<br>+<br>+;CHECK: sub sp, sp, #8<br>+;CHECK: sub sp, sp, #2048<br>+;CHECK: bl callme0<br>+  call void @callme0(%big_struct0* byval %p0)<br>+<br>+;CHECK: add sp, sp, #8<br>+;CHECK: add sp, sp, #2048<br>+;CHECK: sub sp, sp, #2048<br>+;CHECK: bl callme1<br>+  call void @callme1(%big_struct1* byval %p1)<br>+<br>+;CHECK: add sp, sp, #2048<br>+<br>+  ret void<br>+}<br>+<br>+declare void @callme0(%big_struct0* byval)<br>+declare void @callme1(%big_struct1* byval)<br>+<br><br>Added: llvm/trunk/test/CodeGen/ARM/struct-byval-frame-index.ll<br>URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/struct-byval-frame-index.ll?rev=186364&view=auto">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/struct-byval-frame-index.ll?rev=186364&view=auto</a><br>==============================================================================<br>--- llvm/trunk/test/CodeGen/ARM/struct-byval-frame-index.ll (added)<br>+++ llvm/trunk/test/CodeGen/ARM/struct-byval-frame-index.ll Mon Jul 15 18:47:29 2013<br>@@ -0,0 +1,224 @@<br>+; RUN: llc < %s -mcpu=cortex-a15 -verify-machineinstrs | FileCheck %s<br>+<br>+; Check a spill right after a function call with large struct byval is correctly<br>+; generated.<br>+; PR16393<br>+<br>+; CHECK: set_stored_macroblock_parameters<br>+; CHECK: str r{{.*}}, [sp, [[SLOT:#[0-9]+]]] @ 4-byte Spill<br>+; CHECK: bl RestoreMVBlock8x8<br>+; CHECK: bl RestoreMVBlock8x8<br>+; CHECK: bl RestoreMVBlock8x8<br>+; CHECK: ldr r{{.*}}, [sp, [[SLOT]]] @ 4-byte Reload<br>+<br>+target triple = "armv7l-unknown-linux-gnueabihf"<br>+<br>+%struct.RD_DATA.1.145.289.433.545.689.881.897.929.977.1025.1057.1089.1169.1281.2673.2689.2705.2721.2737.2753.2769.2785.2801.2849.2865.2881.2897.2913.2929.2945.2961.2977.2993.3009.3025.3041.3057.3073.3089.3169.3249.3265.3393.3441 = type { double, [16 x [16 x i16]], [16 x [16 x i16]], [16 x [16 x i16]], i32****, i32***, i32, i16, [4 x i32], [4 x i32], i8**, [16 x i8], [16 x i8], i32, i64, i32, i16******, i16******, [2 x [4 x [4 x i8]]], i32, i32, i32, i32, i32, i32, i32, i32, i32 }<br>+%struct.ImageParameters.12.156.300.444.556.700.892.908.940.988.1036.1068.1100.1180.1292.2684.2700.2716.2732.2748.2764.2780.2796.2812.2860.2876.2892.2908.2924.2940.2956.2972.2988.3004.3020.3036.3052.3068.3084.3100.3180.3260.3276.3404.3452 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8**, i8**, i32, i32***, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [9 x [16 x [16 x i16]]], [5 x [16 x [16 x i16]]], [9 x [8 x [8 x i16]]], [2 x [4 x [16 x [16 x i16]]]], [16 x [16 x i16]], [16 x [16 x i32]], i32****, i32***, i32***, i32***, i32****, i32****, %struct.Picture.9.153.297.441.553.697.889.905.937.985.1033.1065.1097.1177.1289.2681.2697.2713.2729.2745.2761.2777.2793.2809.2857.2873.2889.2905.2921.2937.2953.2969.2985.3001.3017.3033.3049.3065.3081.3097.3177.3257.3273.3401.3449*, %struct.Slice.8.152.296.440.552.696.888.904.936.984.1032.1064.1096.1176.128!<br>8.2680.26<br>96.2712.2728.2744.2760.2776.2792.2808.2856.2872.2888.2904.2920.2936.2952.2968.2984.3000.3016.3032.3048.3064.3080.3096.3176.3256.3272.3400.3448*, %struct.macroblock.10.154.298.442.554.698.890.906.938.986.1034.1066.1098.1178.1290.2682.2698.2714.2730.2746.2762.2778.2794.2810.2858.2874.2890.2906.2922.2938.2954.2970.2986.3002.3018.3034.3050.3066.3082.3098.3178.3258.3274.3402.3450*, i32*, i32*, i32, i32, i32, i32, [4 x [4 x i32]], i32, i32, i32, i32, i32, double, i32, i32, i32, i32, i16******, i16******, i16******, i16******, [15 x i16], i32, i32, i32, i32, i32, i32, i32, i32, [6 x [32 x i32]], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [1 x i32], i32, i32, [2 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.DecRefPicMarking_s.11.155.299.443.555.699.891.907.939.987.1035.1067.1099.1179.1291.2683.2699.2715.2731.2747.2763.2779.2795.2811.2859.2875.2891.2907.2923.2939.2955.2971.2987.3003.3019.3035.3051.3067.3083.3099!<br>.3179.325<br>9.3275.3403.3451*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double**, double***, i32***, double**, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [3 x [2 x i32]], [2 x i32], i32, i32, i16, i32, i32, i32, i32, i32 }<br>+%struct.Picture.9.153.297.441.553.697.889.905.937.985.1033.1065.1097.1177.1289.2681.2697.2713.2729.2745.2761.2777.2793.2809.2857.2873.2889.2905.2921.2937.2953.2969.2985.3001.3017.3033.3049.3065.3081.3097.3177.3257.3273.3401.3449 = type { i32, i32, [100 x %struct.Slice.8.152.296.440.552.696.888.904.936.984.1032.1064.1096.1176.1288.2680.2696.2712.2728.2744.2760.2776.2792.2808.2856.2872.2888.2904.2920.2936.2952.2968.2984.3000.3016.3032.3048.3064.3080.3096.3176.3256.3272.3400.3448*], i32, float, float, float }<br>+%struct.Slice.8.152.296.440.552.696.888.904.936.984.1032.1064.1096.1176.1288.2680.2696.2712.2728.2744.2760.2776.2792.2808.2856.2872.2888.2904.2920.2936.2952.2968.2984.3000.3016.3032.3048.3064.3080.3096.3176.3256.3272.3400.3448 = type { i32, i32, i32, i32, i32, i32, %struct.datapartition.4.148.292.436.548.692.884.900.932.980.1028.1060.1092.1172.1284.2676.2692.2708.2724.2740.2756.2772.2788.2804.2852.2868.2884.2900.2916.2932.2948.2964.2980.2996.3012.3028.3044.3060.3076.3092.3172.3252.3268.3396.3444*, %struct.MotionInfoContexts.6.150.294.438.550.694.886.902.934.982.1030.1062.1094.1174.1286.2678.2694.2710.2726.2742.2758.2774.2790.2806.2854.2870.2886.2902.2918.2934.2950.2966.2982.2998.3014.3030.3046.3062.3078.3094.3174.3254.3270.3398.3446*, %struct.TextureInfoContexts.7.151.295.439.551.695.887.903.935.983.1031.1063.1095.1175.1287.2679.2695.2711.2727.2743.2759.2775.2791.2807.2855.2871.2887.2903.2919.2935.2951.2967.2983.2999.3015.3031.3047.3063.3079.3095.3175.3255.3271.3399.3447*, !<br>i32, i32*<br>, i32*, i32*, i32, i32*, i32*, i32*, i32 (i32)*, [3 x [2 x i32]] }<br>+%struct.datapartition.4.148.292.436.548.692.884.900.932.980.1028.1060.1092.1172.1284.2676.2692.2708.2724.2740.2756.2772.2788.2804.2852.2868.2884.2900.2916.2932.2948.2964.2980.2996.3012.3028.3044.3060.3076.3092.3172.3252.3268.3396.3444 = type { %struct.Bitstream.2.146.290.434.546.690.882.898.930.978.1026.1058.1090.1170.1282.2674.2690.2706.2722.2738.2754.2770.2786.2802.2850.2866.2882.2898.2914.2930.2946.2962.2978.2994.3010.3026.3042.3058.3074.3090.3170.3250.3266.3394.3442*, %struct.EncodingEnvironment.3.147.291.435.547.691.883.899.931.979.1027.1059.1091.1171.1283.2675.2691.2707.2723.2739.2755.2771.2787.2803.2851.2867.2883.2899.2915.2931.2947.2963.2979.2995.3011.3027.3043.3059.3075.3091.3171.3251.3267.3395.3443, %struct.EncodingEnvironment.3.147.291.435.547.691.883.899.931.979.1027.1059.1091.1171.1283.2675.2691.2707.2723.2739.2755.2771.2787.2803.2851.2867.2883.2899.2915.2931.2947.2963.2979.2995.3011.3027.3043.3059.3075.3091.3171.3251.3267.3395.3443 }<br>+%struct.Bitstream.2.146.290.434.546.690.882.898.930.978.1026.1058.1090.1170.1282.2674.2690.2706.2722.2738.2754.2770.2786.2802.2850.2866.2882.2898.2914.2930.2946.2962.2978.2994.3010.3026.3042.3058.3074.3090.3170.3250.3266.3394.3442 = type { i32, i32, i8, i32, i32, i8, i8, i32, i32, i8*, i32 }<br>+%struct.EncodingEnvironment.3.147.291.435.547.691.883.899.931.979.1027.1059.1091.1171.1283.2675.2691.2707.2723.2739.2755.2771.2787.2803.2851.2867.2883.2899.2915.2931.2947.2963.2979.2995.3011.3027.3043.3059.3075.3091.3171.3251.3267.3395.3443 = type { i32, i32, i32, i32, i32, i8*, i32*, i32, i32 }<br>+%struct.MotionInfoContexts.6.150.294.438.550.694.886.902.934.982.1030.1062.1094.1174.1286.2678.2694.2710.2726.2742.2758.2774.2790.2806.2854.2870.2886.2902.2918.2934.2950.2966.2982.2998.3014.3030.3046.3062.3078.3094.3174.3254.3270.3398.3446 = type { [3 x [11 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445]], [2 x [9 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445]], [2 x [10 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3!<br>445]], [2<br> x [6 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445]], [4 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445], [4 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445], [3 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445] }<br>+%struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445 = type { i16, i8, i32 }<br>+%struct.TextureInfoContexts.7.151.295.439.551.695.887.903.935.983.1031.1063.1095.1175.1287.2679.2695.2711.2727.2743.2759.2775.2791.2807.2855.2871.2887.2903.2919.2935.2951.2967.2983.2999.3015.3031.3047.3063.3079.3095.3175.3255.3271.3399.3447 = type { [2 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445], [4 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445], [3 x [4 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445]], [10 x !<br>[4 x %str<br>uct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445]], [10 x [15 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445]], [10 x [15 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445]], [10 x [5 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445]], [10 x!<br> [5 x %st<br>ruct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445]], [10 x [15 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445]], [10 x [15 x %struct.BiContextType.5.149.293.437.549.693.885.901.933.981.1029.1061.1093.1173.1285.2677.2693.2709.2725.2741.2757.2773.2789.2805.2853.2869.2885.2901.2917.2933.2949.2965.2981.2997.3013.3029.3045.3061.3077.3093.3173.3253.3269.3397.3445]] }<br>+%struct.macroblock.10.154.298.442.554.698.890.906.938.986.1034.1066.1098.1178.1290.2682.2698.2714.2730.2746.2762.2778.2794.2810.2858.2874.2890.2906.2922.2938.2954.2970.2986.3002.3018.3034.3050.3066.3082.3098.3178.3258.3274.3402.3450 = type { i32, i32, i32, [2 x i32], i32, [8 x i32], %struct.macroblock.10.154.298.442.554.698.890.906.938.986.1034.1066.1098.1178.1290.2682.2698.2714.2730.2746.2762.2778.2794.2810.2858.2874.2890.2906.2922.2938.2954.2970.2986.3002.3018.3034.3050.3066.3082.3098.3178.3258.3274.3402.3450*, %struct.macroblock.10.154.298.442.554.698.890.906.938.986.1034.1066.1098.1178.1290.2682.2698.2714.2730.2746.2762.2778.2794.2810.2858.2874.2890.2906.2922.2938.2954.2970.2986.3002.3018.3034.3050.3066.3082.3098.3178.3258.3274.3402.3450*, i32, [2 x [4 x [4 x [2 x i32]]]], [16 x i8], [16 x i8], i32, i64, [4 x i32], [4 x i32], i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, double, i32, i32, i32, i32, i32, i32, i32, i32, i32 }<br>+%struct.DecRefPicMarking_s.11.155.299.443.555.699.891.907.939.987.1035.1067.1099.1179.1291.2683.2699.2715.2731.2747.2763.2779.2795.2811.2859.2875.2891.2907.2923.2939.2955.2971.2987.3003.3019.3035.3051.3067.3083.3099.3179.3259.3275.3403.3451 = type { i32, i32, i32, i32, i32, %struct.DecRefPicMarking_s.11.155.299.443.555.699.891.907.939.987.1035.1067.1099.1179.1291.2683.2699.2715.2731.2747.2763.2779.2795.2811.2859.2875.2891.2907.2923.2939.2955.2971.2987.3003.3019.3035.3051.3067.3083.3099.3179.3259.3275.3403.3451* }<br>+%struct.storable_picture.13.157.301.445.557.701.893.909.941.989.1037.1069.1101.1181.1293.2685.2701.2717.2733.2749.2765.2781.2797.2813.2861.2877.2893.2909.2925.2941.2957.2973.2989.3005.3021.3037.3053.3069.3085.3101.3181.3261.3277.3405.3453 = type { i32, i32, i32, i32, i32, i32, [6 x [33 x i64]], [6 x [33 x i64]], [6 x [33 x i64]], [6 x [33 x i64]], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i16**, i16****, i16****, i16*****, i16***, i8*, i8***, i64***, i64***, i16****, i8**, i8**, %struct.storable_picture.13.157.301.445.557.701.893.909.941.989.1037.1069.1101.1181.1293.2685.2701.2717.2733.2749.2765.2781.2797.2813.2861.2877.2893.2909.2925.2941.2957.2973.2989.3005.3021.3037.3053.3069.3085.3101.3181.3261.3277.3405.3453*, %struct.storable_picture.13.157.301.445.557.701.893.909.941.989.1037.1069.1101.1181.1293.2685.2701.2717.2733.2749.2765.2781.2797.2813.2861.2877.2893.2909.2925.2941.2957.2973.2989.3005.3021.3037.3053.3069.3085.3!<br>101.3181.<br>3261.3277.3405.3453*, %struct.storable_picture.13.157.301.445.557.701.893.909.941.989.1037.1069.1101.1181.1293.2685.2701.2717.2733.2749.2765.2781.2797.2813.2861.2877.2893.2909.2925.2941.2957.2973.2989.3005.3021.3037.3053.3069.3085.3101.3181.3261.3277.3405.3453*, i32, i32, i32, i32, i32, i32, i32 }<br>+%struct.RD_8x8DATA.15.159.303.447.559.703.895.911.943.991.1039.1071.1103.1183.1295.2687.2703.2719.2735.2751.2767.2783.2799.2815.2863.2879.2895.2911.2927.2943.2959.2975.2991.3007.3023.3039.3055.3071.3087.3103.3183.3263.3279.3407.3455 = type { i32, [16 x [16 x i32]], [16 x [16 x i32]], [16 x [16 x i32]], [3 x [16 x [16 x i32]]], [4 x i16], [4 x i8], [4 x i8], [4 x i8], [16 x [16 x i16]], [16 x [16 x i16]], [16 x [16 x i32]] }<br>+<br>+@cofAC = external global i32****, align 4<br>+@cofDC = external global i32***, align 4<br>+@rdopt = external global %struct.RD_DATA.1.145.289.433.545.689.881.897.929.977.1025.1057.1089.1169.1281.2673.2689.2705.2721.2737.2753.2769.2785.2801.2849.2865.2881.2897.2913.2929.2945.2961.2977.2993.3009.3025.3041.3057.3073.3089.3169.3249.3265.3393.3441*, align 4<br>+@img = external global %struct.ImageParameters.12.156.300.444.556.700.892.908.940.988.1036.1068.1100.1180.1292.2684.2700.2716.2732.2748.2764.2780.2796.2812.2860.2876.2892.2908.2924.2940.2956.2972.2988.3004.3020.3036.3052.3068.3084.3100.3180.3260.3276.3404.3452*<br>+@enc_picture = external global %struct.storable_picture.13.157.301.445.557.701.893.909.941.989.1037.1069.1101.1181.1293.2685.2701.2717.2733.2749.2765.2781.2797.2813.2861.2877.2893.2909.2925.2941.2957.2973.2989.3005.3021.3037.3053.3069.3085.3101.3181.3261.3277.3405.3453*<br>+@si_frame_indicator = external global i32, align 4<br>+@sp2_frame_indicator = external global i32, align 4<br>+@lrec = external global i32**, align 4<br>+@tr8x8 = external global %struct.RD_8x8DATA.15.159.303.447.559.703.895.911.943.991.1039.1071.1103.1183.1295.2687.2703.2719.2735.2751.2767.2783.2799.2815.2863.2879.2895.2911.2927.2943.2959.2975.2991.3007.3023.3039.3055.3071.3087.3103.3183.3263.3279.3407.3455, align 4<br>+@best_mode = external global i16, align 2<br>+@best_c_imode = external global i32, align 4<br>+@best_i16offset = external global i32, align 4<br>+@bi_pred_me = external global i16, align 2<br>+@b8mode = external global [4 x i32], align 4<br>+@b8pdir = external global [4 x i32], align 4<br>+@b4_intra_pred_modes = external global [16 x i8], align 1<br>+@b8_intra_pred_modes8x8 = external global [16 x i8], align 1<br>+@b4_ipredmode = external global [16 x i8], align 1<br>+@b8_ipredmode8x8 = external global [4 x [4 x i8]], align 1<br>+@rec_mbY = external global [16 x [16 x i16]], align 2<br>+@lrec_rec = external global [16 x [16 x i32]], align 4<br>+@rec_mbU = external global [16 x [16 x i16]], align 2<br>+@rec_mbV = external global [16 x [16 x i16]], align 2<br>+@lrec_rec_U = external global [16 x [16 x i32]], align 4<br>+@lrec_uv = external global i32***, align 4<br>+@lrec_rec_V = external global [16 x [16 x i32]], align 4<br>+@cbp = external global i32, align 4<br>+@cbp_blk = external global i64, align 8<br>+@luma_transform_size_8x8_flag = external global i32, align 4<br>+@frefframe = external global [4 x [4 x i8]], align 1<br>+@brefframe = external global [4 x [4 x i8]], align 1<br>+<br>+; Function Attrs: nounwind<br>+declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) #0<br>+<br>+; Function Attrs: nounwind<br>+declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) #0<br>+<br>+; Function Attrs: nounwind<br>+declare void @SetMotionVectorsMB(%struct.macroblock.10.154.298.442.554.698.890.906.938.986.1034.1066.1098.1178.1290.2682.2698.2714.2730.2746.2762.2778.2794.2810.2858.2874.2890.2906.2922.2938.2954.2970.2986.3002.3018.3034.3050.3066.3082.3098.3178.3258.3274.3402.3450* nocapture, i32) #1<br>+<br>+; Function Attrs: nounwind<br>+define void @set_stored_macroblock_parameters() #1 {<br>+entry:<br>+  %0 = load %struct.ImageParameters.12.156.300.444.556.700.892.908.940.988.1036.1068.1100.1180.1292.2684.2700.2716.2732.2748.2764.2780.2796.2812.2860.2876.2892.2908.2924.2940.2956.2972.2988.3004.3020.3036.3052.3068.3084.3100.3180.3260.3276.3404.3452** @img, align 4, !tbaa !0<br>+  %1 = load i32* undef, align 4, !tbaa !3<br>+  %mb_data = getelementptr inbounds %struct.ImageParameters.12.156.300.444.556.700.892.908.940.988.1036.1068.1100.1180.1292.2684.2700.2716.2732.2748.2764.2780.2796.2812.2860.2876.2892.2908.2924.2940.2956.2972.2988.3004.3020.3036.3052.3068.3084.3100.3180.3260.3276.3404.3452* %0, i32 0, i32 61<br>+  %2 = load %struct.macroblock.10.154.298.442.554.698.890.906.938.986.1034.1066.1098.1178.1290.2682.2698.2714.2730.2746.2762.2778.2794.2810.2858.2874.2890.2906.2922.2938.2954.2970.2986.3002.3018.3034.3050.3066.3082.3098.3178.3258.3274.3402.3450** %mb_data, align 4, !tbaa !0<br>+  br label %for.body<br>+<br>+for.body:                                         ; preds = %for.body, %entry<br>+  br i1 undef, label %for.end, label %for.body<br>+<br>+for.end:                                          ; preds = %for.body<br>+  br i1 undef, label %for.body20, label %if.end<br>+<br>+for.body20:                                       ; preds = %for.end<br>+  unreachable<br>+<br>+if.end:                                           ; preds = %for.end<br>+  br i1 undef, label %if.end40, label %for.cond31.preheader<br>+<br>+for.cond31.preheader:                             ; preds = %if.end<br>+  unreachable<br>+<br>+if.end40:                                         ; preds = %if.end<br>+  br i1 undef, label %if.end43, label %if.then42<br>+<br>+if.then42:                                        ; preds = %if.end40<br>+  br label %if.end43<br>+<br>+if.end43:                                         ; preds = %if.then42, %if.end40<br>+  br i1 undef, label %if.end164, label %for.cond47.preheader<br>+<br>+for.cond47.preheader:                             ; preds = %if.end43<br>+  br i1 undef, label %for.body119, label %if.end164<br>+<br>+for.body119:                                      ; preds = %for.body119, %for.cond47.preheader<br>+  br i1 undef, label %for.body119, label %if.end164<br>+<br>+if.end164:                                        ; preds = %for.body119, %for.cond47.preheader, %if.end43<br>+  store i32*** null, i32**** @cofDC, align 4, !tbaa !0<br>+  %mb_type = getelementptr inbounds %struct.macroblock.10.154.298.442.554.698.890.906.938.986.1034.1066.1098.1178.1290.2682.2698.2714.2730.2746.2762.2778.2794.2810.2858.2874.2890.2906.2922.2938.2954.2970.2986.3002.3018.3034.3050.3066.3082.3098.3178.3258.3274.3402.3450* %2, i32 %1, i32 8<br>+  br i1 undef, label %if.end230, label %if.then169<br>+<br>+if.then169:                                       ; preds = %if.end164<br>+  br i1 undef, label %for.cond185.preheader, label %for.cond210.preheader<br>+<br>+for.cond185.preheader:                            ; preds = %if.then169<br>+  unreachable<br>+<br>+for.cond210.preheader:                            ; preds = %if.then169<br>+  unreachable<br>+<br>+if.end230:                                        ; preds = %if.end164<br>+  tail call void @llvm.memcpy.p0i8.p0i8.i32(i8* undef, i8* bitcast ([4 x i32]* @b8mode to i8*), i32 16, i32 4, i1 false)<br>+  %b8pdir = getelementptr inbounds %struct.macroblock.10.154.298.442.554.698.890.906.938.986.1034.1066.1098.1178.1290.2682.2698.2714.2730.2746.2762.2778.2794.2810.2858.2874.2890.2906.2922.2938.2954.2970.2986.3002.3018.3034.3050.3066.3082.3098.3178.3258.3274.3402.3450* %2, i32 %1, i32 15<br>+  %3 = bitcast [4 x i32]* %b8pdir to i8*<br>+  tail call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* bitcast ([4 x i32]* @b8pdir to i8*), i32 16, i32 4, i1 false)<br>+  br i1 undef, label %if.end236, label %if.then233<br>+<br>+if.then233:                                       ; preds = %if.end230<br>+  unreachable<br>+<br>+if.end236:                                        ; preds = %if.end230<br>+  %cmp242 = icmp ne i16 undef, 8<br>+  %4 = load i32* @luma_transform_size_8x8_flag, align 4, !tbaa !3<br>+  %tobool245 = icmp ne i32 %4, 0<br>+  %or.cond812 = or i1 %cmp242, %tobool245<br>+  br i1 %or.cond812, label %if.end249, label %land.lhs.true246<br>+<br>+land.lhs.true246:                                 ; preds = %if.end236<br>+  br i1 undef, label %if.end249, label %if.then248<br>+<br>+if.then248:                                       ; preds = %land.lhs.true246<br>+  tail call void @RestoreMVBlock8x8(i32 1, i32 0, %struct.RD_8x8DATA.15.159.303.447.559.703.895.911.943.991.1039.1071.1103.1183.1295.2687.2703.2719.2735.2751.2767.2783.2799.2815.2863.2879.2895.2911.2927.2943.2959.2975.2991.3007.3023.3039.3055.3071.3087.3103.3183.3263.3279.3407.3455* byval @tr8x8, i32 0) #0<br>+  tail call void @RestoreMVBlock8x8(i32 1, i32 2, %struct.RD_8x8DATA.15.159.303.447.559.703.895.911.943.991.1039.1071.1103.1183.1295.2687.2703.2719.2735.2751.2767.2783.2799.2815.2863.2879.2895.2911.2927.2943.2959.2975.2991.3007.3023.3039.3055.3071.3087.3103.3183.3263.3279.3407.3455* byval @tr8x8, i32 0) #0<br>+  tail call void @RestoreMVBlock8x8(i32 1, i32 3, %struct.RD_8x8DATA.15.159.303.447.559.703.895.911.943.991.1039.1071.1103.1183.1295.2687.2703.2719.2735.2751.2767.2783.2799.2815.2863.2879.2895.2911.2927.2943.2959.2975.2991.3007.3023.3039.3055.3071.3087.3103.3183.3263.3279.3407.3455* byval @tr8x8, i32 0) #0<br>+  br label %if.end249<br>+<br>+if.end249:                                        ; preds = %if.then248, %land.lhs.true246, %if.end236<br>+  %5 = load i32* @luma_transform_size_8x8_flag, align 4, !tbaa !3<br>+  %6 = load %struct.RD_DATA.1.145.289.433.545.689.881.897.929.977.1025.1057.1089.1169.1281.2673.2689.2705.2721.2737.2753.2769.2785.2801.2849.2865.2881.2897.2913.2929.2945.2961.2977.2993.3009.3025.3041.3057.3073.3089.3169.3249.3265.3393.3441** @rdopt, align 4, !tbaa !0<br>+  %luma_transform_size_8x8_flag264 = getelementptr inbounds %struct.RD_DATA.1.145.289.433.545.689.881.897.929.977.1025.1057.1089.1169.1281.2673.2689.2705.2721.2737.2753.2769.2785.2801.2849.2865.2881.2897.2913.2929.2945.2961.2977.2993.3009.3025.3041.3057.3073.3089.3169.3249.3265.3393.3441* %6, i32 0, i32 21<br>+  store i32 %5, i32* %luma_transform_size_8x8_flag264, align 4, !tbaa !3<br>+  %7 = load i32* undef, align 4, !tbaa !3<br>+  %add281 = add nsw i32 %7, 0<br>+  br label %for.body285<br>+<br>+for.body285:                                      ; preds = %for.inc503, %if.end249<br>+  %8 = phi %struct.ImageParameters.12.156.300.444.556.700.892.908.940.988.1036.1068.1100.1180.1292.2684.2700.2716.2732.2748.2764.2780.2796.2812.2860.2876.2892.2908.2924.2940.2956.2972.2988.3004.3020.3036.3052.3068.3084.3100.3180.3260.3276.3404.3452* [ undef, %if.end249 ], [ %.pre1155, %for.inc503 ]<br>+  %i.21103 = phi i32 [ 0, %if.end249 ], [ %inc504, %for.inc503 ]<br>+  %block_x286 = getelementptr inbounds %struct.ImageParameters.12.156.300.444.556.700.892.908.940.988.1036.1068.1100.1180.1292.2684.2700.2716.2732.2748.2764.2780.2796.2812.2860.2876.2892.2908.2924.2940.2956.2972.2988.3004.3020.3036.3052.3068.3084.3100.3180.3260.3276.3404.3452* %8, i32 0, i32 37<br>+  %9 = load i32* %block_x286, align 4, !tbaa !3<br>+  %add287 = add nsw i32 %9, %i.21103<br>+  %shr289 = ashr i32 %i.21103, 1<br>+  %add290 = add nsw i32 %shr289, 0<br>+  %arrayidx292 = getelementptr inbounds %struct.macroblock.10.154.298.442.554.698.890.906.938.986.1034.1066.1098.1178.1290.2682.2698.2714.2730.2746.2762.2778.2794.2810.2858.2874.2890.2906.2922.2938.2954.2970.2986.3002.3018.3034.3050.3066.3082.3098.3178.3258.3274.3402.3450* %2, i32 %1, i32 15, i32 %add290<br>+  %10 = load %struct.storable_picture.13.157.301.445.557.701.893.909.941.989.1037.1069.1101.1181.1293.2685.2701.2717.2733.2749.2765.2781.2797.2813.2861.2877.2893.2909.2925.2941.2957.2973.2989.3005.3021.3037.3053.3069.3085.3101.3181.3261.3277.3405.3453** @enc_picture, align 4, !tbaa !0<br>+  %ref_idx = getelementptr inbounds %struct.storable_picture.13.157.301.445.557.701.893.909.941.989.1037.1069.1101.1181.1293.2685.2701.2717.2733.2749.2765.2781.2797.2813.2861.2877.2893.2909.2925.2941.2957.2973.2989.3005.3021.3037.3053.3069.3085.3101.3181.3261.3277.3405.3453* %10, i32 0, i32 35<br>+  %11 = load i8**** %ref_idx, align 4, !tbaa !0<br>+  %12 = load i8*** %11, align 4, !tbaa !0<br>+  %arrayidx313 = getelementptr inbounds i8** %12, i32 %add281<br>+  %13 = load i8** %arrayidx313, align 4, !tbaa !0<br>+  %arrayidx314 = getelementptr inbounds i8* %13, i32 %add287<br>+  store i8 -1, i8* %arrayidx314, align 1, !tbaa !1<br>+  %14 = load %struct.ImageParameters.12.156.300.444.556.700.892.908.940.988.1036.1068.1100.1180.1292.2684.2700.2716.2732.2748.2764.2780.2796.2812.2860.2876.2892.2908.2924.2940.2956.2972.2988.3004.3020.3036.3052.3068.3084.3100.3180.3260.3276.3404.3452** @img, align 4, !tbaa !0<br>+  %MbaffFrameFlag327 = getelementptr inbounds %struct.ImageParameters.12.156.300.444.556.700.892.908.940.988.1036.1068.1100.1180.1292.2684.2700.2716.2732.2748.2764.2780.2796.2812.2860.2876.2892.2908.2924.2940.2956.2972.2988.3004.3020.3036.3052.3068.3084.3100.3180.3260.3276.3404.3452* %14, i32 0, i32 100<br>+  %15 = load i32* %MbaffFrameFlag327, align 4, !tbaa !3<br>+  %tobool328 = icmp eq i32 %15, 0<br>+  br i1 %tobool328, label %if.end454, label %if.then329<br>+<br>+if.then329:                                       ; preds = %for.body285<br>+  %16 = load %struct.RD_DATA.1.145.289.433.545.689.881.897.929.977.1025.1057.1089.1169.1281.2673.2689.2705.2721.2737.2753.2769.2785.2801.2849.2865.2881.2897.2913.2929.2945.2961.2977.2993.3009.3025.3041.3057.3073.3089.3169.3249.3265.3393.3441** @rdopt, align 4, !tbaa !0<br>+  br label %if.end454<br>+<br>+if.end454:                                        ; preds = %if.then329, %for.body285<br>+  %17 = load i32* %arrayidx292, align 4, !tbaa !3<br>+  %cmp457 = icmp eq i32 %17, 0<br>+  br i1 %cmp457, label %if.then475, label %lor.lhs.false459<br>+<br>+lor.lhs.false459:                                 ; preds = %if.end454<br>+  %18 = load i32* %mb_type, align 4, !tbaa !3<br>+  switch i32 %18, label %for.inc503 [<br>+    i32 9, label %if.then475<br>+    i32 10, label %if.then475<br>+    i32 13, label %if.then475<br>+    i32 14, label %if.then475<br>+  ]<br>+<br>+if.then475:                                       ; preds = %lor.lhs.false459, %lor.lhs.false459, %lor.lhs.false459, %lor.lhs.false459, %if.end454<br>+  store i16 0, i16* undef, align 2, !tbaa !4<br>+  br label %for.inc503<br>+<br>+for.inc503:                                       ; preds = %if.then475, %lor.lhs.false459<br>+  %inc504 = add nsw i32 %i.21103, 1<br>+  %.pre1155 = load %struct.ImageParameters.12.156.300.444.556.700.892.908.940.988.1036.1068.1100.1180.1292.2684.2700.2716.2732.2748.2764.2780.2796.2812.2860.2876.2892.2908.2924.2940.2956.2972.2988.3004.3020.3036.3052.3068.3084.3100.3180.3260.3276.3404.3452** @img, align 4, !tbaa !0<br>+  br label %for.body285<br>+}<br>+<br>+; Function Attrs: nounwind<br>+declare void @update_offset_params(i32, i32) #1<br>+<br>+; Function Attrs: nounwind<br>+declare void @RestoreMVBlock8x8(i32, i32, %struct.RD_8x8DATA.15.159.303.447.559.703.895.911.943.991.1039.1071.1103.1183.1295.2687.2703.2719.2735.2751.2767.2783.2799.2815.2863.2879.2895.2911.2927.2943.2959.2975.2991.3007.3023.3039.3055.3071.3087.3103.3183.3263.3279.3407.3455* byval nocapture, i32) #1<br>+<br>+attributes #0 = { nounwind }<br>+attributes #1 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }<br>+<br>+!0 = metadata !{metadata !"any pointer", metadata !1}<br>+!1 = metadata !{metadata !"omnipotent char", metadata !2}<br>+!2 = metadata !{metadata !"Simple C/C++ TBAA"}<br>+!3 = metadata !{metadata !"int", metadata !1}<br>+!4 = metadata !{metadata !"short", metadata !1}<br><br><br>_______________________________________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a></div></blockquote></div><br></div></div></blockquote></div><br></div></body></html>