brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.7 KiB · 183e3dd Raw
121 lines · plain
1; REQUIRES: webassembly-registered-target2 3; Test case 1 - General options.4 5; test.cpp6;  1  using INTPTR = const int *;7;  2  int foo(INTPTR ParamPtr, unsigned ParamUnsigned, bool ParamBool) {8;  3    if (ParamBool) {9;  4      typedef int INTEGER;10;  5      const INTEGER CONSTANT = 7;11;  6      return CONSTANT;12;  7    }13;  8    return ParamUnsigned;14;  9  }15 16; Print basic details.17; The following command prints basic details for all the logical elements18; sorted by the debug information internal offset; it includes its lexical19; level and debug info format.20 21; RUN: llvm-mc -arch=wasm32 -filetype=obj \22; RUN:         %p/Inputs/test-clang.s -o %t.test-clang.o23 24; RUN: llvm-debuginfo-analyzer --attribute=level,format \25; RUN:                         --output-sort=offset \26; RUN:                         --print=scopes,symbols,types,lines,instructions \27; RUN:                         %t.test-clang.o 2>&1 | \28; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s29 30; RUN: llvm-debuginfo-analyzer --attribute=level,format \31; RUN:                         --output-sort=offset \32; RUN:                         --print=elements \33; RUN:                         %t.test-clang.o 2>&1 | \34; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s35 36; ONE:      Logical View:37; ONE-NEXT: [000]           {File} '{{.*}}test-clang.o' -> WASM38; ONE-EMPTY:39; ONE-NEXT: [001]             {CompileUnit} 'test.cpp'40; ONE-NEXT: [002]     2         {Function} extern not_inlined 'foo' -> 'int'41; ONE-NEXT: [003]     2           {Parameter} 'ParamPtr' -> 'INTPTR'42; ONE-NEXT: [003]     2           {Parameter} 'ParamUnsigned' -> 'unsigned int'43; ONE-NEXT: [003]     2           {Parameter} 'ParamBool' -> 'bool'44; ONE-NEXT: [003]                 {Block}45; ONE-NEXT: [004]     5             {Variable} 'CONSTANT' -> 'const INTEGER'46; ONE-NEXT: [004]     5             {Line}47; ONE-NEXT: [004]                   {Code} 'i32.const	7'48; ONE-NEXT: [004]                   {Code} 'local.set	10'49; ONE-NEXT: [004]                   {Code} 'local.get	5'50; ONE-NEXT: [004]                   {Code} 'local.get	10'51; ONE-NEXT: [004]                   {Code} 'i32.store	12'52; ONE-NEXT: [004]     6             {Line}53; ONE-NEXT: [004]                   {Code} 'i32.const	7'54; ONE-NEXT: [004]                   {Code} 'local.set	11'55; ONE-NEXT: [004]                   {Code} 'local.get	5'56; ONE-NEXT: [004]                   {Code} 'local.get	11'57; ONE-NEXT: [004]                   {Code} 'i32.store	28'58; ONE-NEXT: [004]                   {Code} 'br      	1'59; ONE-NEXT: [003]     4           {TypeAlias} 'INTEGER' -> 'int'60; ONE-NEXT: [003]     2           {Line}61; ONE-NEXT: [003]                 {Code} 'nop'62; ONE-NEXT: [003]                 {Code} 'end'63; ONE-NEXT: [003]                 {Code} 'i64.div_s'64; ONE-NEXT: [003]                 {Code} 'global.get	0'65; ONE-NEXT: [003]                 {Code} 'local.set	3'66; ONE-NEXT: [003]                 {Code} 'i32.const	32'67; ONE-NEXT: [003]                 {Code} 'local.set	4'68; ONE-NEXT: [003]                 {Code} 'local.get	3'69; ONE-NEXT: [003]                 {Code} 'local.get	4'70; ONE-NEXT: [003]                 {Code} 'i32.sub'71; ONE-NEXT: [003]                 {Code} 'local.set	5'72; ONE-NEXT: [003]                 {Code} 'local.get	5'73; ONE-NEXT: [003]                 {Code} 'local.get	0'74; ONE-NEXT: [003]                 {Code} 'i32.store	24'75; ONE-NEXT: [003]                 {Code} 'local.get	5'76; ONE-NEXT: [003]                 {Code} 'local.get	1'77; ONE-NEXT: [003]                 {Code} 'i32.store	20'78; ONE-NEXT: [003]                 {Code} 'local.get	2'79; ONE-NEXT: [003]                 {Code} 'local.set	6'80; ONE-NEXT: [003]                 {Code} 'local.get	5'81; ONE-NEXT: [003]                 {Code} 'local.get	6'82; ONE-NEXT: [003]                 {Code} 'i32.store8	19'83; ONE-NEXT: [003]     3           {Line}84; ONE-NEXT: [003]                 {Code} 'local.get	5'85; ONE-NEXT: [003]                 {Code} 'i32.load8_u	19'86; ONE-NEXT: [003]                 {Code} 'local.set	7'87; ONE-NEXT: [003]     3           {Line}88; ONE-NEXT: [003]                 {Code} 'i32.const	1'89; ONE-NEXT: [003]                 {Code} 'local.set	8'90; ONE-NEXT: [003]                 {Code} 'local.get	7'91; ONE-NEXT: [003]                 {Code} 'local.get	8'92; ONE-NEXT: [003]                 {Code} 'i32.and'93; ONE-NEXT: [003]                 {Code} 'local.set	9'94; ONE-NEXT: [003]                 {Code} 'block'95; ONE-NEXT: [003]                 {Code} 'block'96; ONE-NEXT: [003]                 {Code} 'local.get	9'97; ONE-NEXT: [003]                 {Code} 'i32.eqz'98; ONE-NEXT: [003]                 {Code} 'br_if   	0'99; ONE-NEXT: [003]     -           {Line}100; ONE-NEXT: [003]                 {Code} 'end'101; ONE-NEXT: [003]     8           {Line}102; ONE-NEXT: [003]                 {Code} 'local.get	5'103; ONE-NEXT: [003]                 {Code} 'i32.load	20'104; ONE-NEXT: [003]                 {Code} 'local.set	12'105; ONE-NEXT: [003]     8           {Line}106; ONE-NEXT: [003]                 {Code} 'local.get	5'107; ONE-NEXT: [003]                 {Code} 'local.get	12'108; ONE-NEXT: [003]                 {Code} 'i32.store	28'109; ONE-NEXT: [003]     -           {Line}110; ONE-NEXT: [003]                 {Code} 'end'111; ONE-NEXT: [003]     9           {Line}112; ONE-NEXT: [003]                 {Code} 'local.get	5'113; ONE-NEXT: [003]                 {Code} 'i32.load	28'114; ONE-NEXT: [003]                 {Code} 'local.set	13'115; ONE-NEXT: [003]                 {Code} 'local.get	13'116; ONE-NEXT: [003]                 {Code} 'return'117; ONE-NEXT: [003]                 {Code} 'end'118; ONE-NEXT: [002]     1         {TypeAlias} 'INTPTR' -> '* const int'119; ONE-NEXT: [002]     9         {Line}120; ONE-NEXT: [002]               {Code} 'unreachable'121