60 lines · plain
1; REQUIRES: x86-registered-target2; RUN: llc -mtriple x86_64-apple-darwin %s -pass-remarks-analysis='size-info'\3; RUN: -pass-remarks-output=%t.yaml -o /dev/null < %s 2> %t; \4; RUN: cat %t %t.yaml | FileCheck %s5 6; Make sure that machine-level size remarks work.7; Test the following:8; - When we create a MachineFunction (e.g, during instruction selection), it9; has a size of 0.10; - The initial size of the function after filling it is positive.11; - After that, we can increase or decrease the size of the function.12; - ... The final size must be positive.13; - ... The delta can be negative or positive.14 15; CHECK: remark: <unknown>:0:0: X86 DAG->DAG Instruction Selection: Function:16; CHECK-SAME: main: MI Instruction count changed from 017; CHECK-SAME: to [[INIT:[1-9][0-9]*]]; Delta: [[INIT]]18; CHECK-NEXT: remark: <unknown>:0:0: Register Coalescer: Function: main:19; CHECK-SAME: MI Instruction count changed from [[INIT]] to20; CHECK-SAME: [[FINAL:[1-9][0-9]*]];21; CHECK-SAME: Delta: [[DELTA:-?[1-9][0-9]*]]22; CHECK-NEXT: --- !Analysis23; CHECK-NEXT: Pass: size-info24; CHECK-NEXT: Name: FunctionMISizeChange25; CHECK-NEXT: Function: main26; CHECK-NEXT: Args:27; CHECK-NEXT: - Pass: 'X86 DAG->DAG Instruction Selection'28; CHECK-NEXT: - String: ': Function: '29; CHECK-NEXT: - Function: main30; CHECK-NEXT: - String: ': '31; CHECK-NEXT: - String: 'MI Instruction count changed from '32; CHECK-NEXT: - MIInstrsBefore: '0'33; CHECK-NEXT: - String: ' to '34; CHECK-NEXT: - MIInstrsAfter: '[[INIT]]'35; CHECK-NEXT: - String: '; Delta: '36; CHECK-NEXT: - Delta: '[[INIT]]'37; CHECK-DAG: --- !Analysis38; CHECK-NEXT: Pass: size-info39; CHECK-NEXT: Name: FunctionMISizeChange40; CHECK-NEXT: Function: main41; CHECK-NEXT: Args:42; CHECK-NEXT: - Pass: Register Coalescer43; CHECK-NEXT: - String: ': Function: '44; CHECK-NEXT: - Function: main45; CHECK-NEXT: - String: ': '46; CHECK-NEXT: - String: 'MI Instruction count changed from '47; CHECK-NEXT: - MIInstrsBefore: '[[INIT]]'48; CHECK-NEXT: - String: ' to '49; CHECK-NEXT: - MIInstrsAfter: '[[FINAL]]'50; CHECK-NEXT: - String: '; Delta: '51; CHECK-NEXT: - Delta: '[[DELTA]]'52define i32 @main() #0 {53entry:54 %retval = alloca i32, align 455 store i32 0, ptr %retval, align 456 ret i32 057}58 59attributes #0 = { noinline nounwind optnone ssp uwtable }60