1; Test default llvm-profgen with preinline off 2; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t 3; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-DEFAULT 4 5; Test llvm-profgen with preinliner on will merge not inlinable profile into base profile. 6; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --csspgo-preinliner=1 7; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-PREINL 8 9; Test preinliner threshold that prevents all possible inlining and merges everything into base profile. 10; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --csspgo-preinliner=1 -sample-profile-cold-inline-threshold=0 11; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-NO-PREINL 12 13; CHECK-DEFAULT: [main:1 @ foo]:309:0 14; CHECK-DEFAULT-NEXT: 2.1: 14 15; CHECK-DEFAULT-NEXT: 3: 15 16; CHECK-DEFAULT-NEXT: 3.1: 14 bar:14 17; CHECK-DEFAULT-NEXT: 3.2: 1 18; CHECK-DEFAULT-NEXT: !Attributes: 1 19; CHECK-DEFAULT-NEXT:[main:1 @ foo:3.1 @ bar]:84:0 20; CHECK-DEFAULT-NEXT: 1: 14 21; CHECK-DEFAULT-NEXT: !Attributes: 1 22 23; CHECK-PREINL: [foo]:309:0 24; CHECK-PREINL-NEXT: 2.1: 14 25; CHECK-PREINL-NEXT: 3: 15 26; CHECK-PREINL-NEXT: 3.1: 14 bar:14 27; CHECK-PREINL-NEXT: 3.2: 1 28; CHECK-PREINL-NEXT: !Attributes: 1 29; CHECK-PREINL-NEXT:[foo:3.1 @ bar]:84:0 30; CHECK-PREINL-NEXT: 1: 14 31; CHECK-PREINL-NEXT: !Attributes: 3 32 33; CHECK-NO-PREINL: [foo]:309:0 34; CHECK-NO-PREINL-NEXT: 2.1: 14 35; CHECK-NO-PREINL-NEXT: 3: 15 36; CHECK-NO-PREINL-NEXT: 3.1: 14 bar:14 37; CHECK-NO-PREINL-NEXT: 3.2: 1 38; CHECK-NO-PREINL-NEXT: !Attributes: 1 39; CHECK-NO-PREINL-NEXT:[bar]:84:0 40; CHECK-NO-PREINL-NEXT: 1: 14 41; CHECK-NO-PREINL-NEXT: !Attributes: 1 42