Index: test/wasm/data-layout.ll =================================================================== --- test/wasm/data-layout.ll +++ test/wasm/data-layout.ll @@ -49,7 +49,7 @@ ; RELOC: - Type: DATA ; RELOC-NEXT: Relocations: ; RELOC-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 -; RELOC-NEXT: Index: 5 +; RELOC-NEXT: Index: 4 ; RELOC-NEXT: Offset: 0x00000018 ; RELOC-NEXT: Segments: ; RELOC-NEXT: - SectionOffset: 6 @@ -98,7 +98,7 @@ ; RELOC-NEXT: Flags: [ ] ; RELOC-NEXT: Segment: 2 ; RELOC-NEXT: Size: 4 -; RELOC: - Index: 5 +; RELOC: - Index: 4 ; RELOC-NEXT: Kind: DATA ; RELOC-NEXT: Name: hello_str ; RELOC-NEXT: Flags: [ ] Index: test/wasm/init-fini.ll =================================================================== --- test/wasm/init-fini.ll +++ test/wasm/init-fini.ll @@ -105,49 +105,49 @@ ; RELOC: Name: linking ; RELOC-NEXT: SymbolTable: ; RELOC-NEXT: - Index: 0 -; RELOC-NEXT: Kind: DATA -; RELOC-NEXT: Name: __dso_handle -; RELOC-NEXT: Flags: [ BINDING_WEAK, VISIBILITY_HIDDEN, UNDEFINED ] -; RELOC-NEXT: - Index: 1 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: func1 ; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ] ; RELOC-NEXT: Function: 0 -; RELOC-NEXT: - Index: 2 +; RELOC-NEXT: - Index: 1 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: func2 ; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ] ; RELOC-NEXT: Function: 1 -; RELOC-NEXT: - Index: 3 +; RELOC-NEXT: - Index: 2 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: func3 ; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ] ; RELOC-NEXT: Function: 2 -; RELOC-NEXT: - Index: 4 +; RELOC-NEXT: - Index: 3 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: func4 ; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ] ; RELOC-NEXT: Function: 3 -; RELOC-NEXT: - Index: 5 +; RELOC-NEXT: - Index: 4 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: __cxa_atexit ; RELOC-NEXT: Flags: [ ] ; RELOC-NEXT: Function: 4 -; RELOC-NEXT: - Index: 6 +; RELOC-NEXT: - Index: 5 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: _start ; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ] ; RELOC-NEXT: Function: 5 -; RELOC-NEXT: - Index: 7 +; RELOC-NEXT: - Index: 6 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: .Lcall_dtors.101 ; RELOC-NEXT: Flags: [ BINDING_LOCAL ] ; RELOC-NEXT: Function: 6 -; RELOC-NEXT: - Index: 8 +; RELOC-NEXT: - Index: 7 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: .Lregister_call_dtors.101 ; RELOC-NEXT: Flags: [ BINDING_LOCAL ] ; RELOC-NEXT: Function: 7 +; RELOC-NEXT: - Index: 8 +; RELOC-NEXT: Kind: DATA +; RELOC-NEXT: Name: __dso_handle +; RELOC-NEXT: Flags: [ BINDING_WEAK, VISIBILITY_HIDDEN, UNDEFINED ] ; RELOC-NEXT: - Index: 9 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: .Lcall_dtors.1001 @@ -159,20 +159,20 @@ ; RELOC-NEXT: Flags: [ BINDING_LOCAL ] ; RELOC-NEXT: Function: 9 ; RELOC-NEXT: - Index: 11 -; RELOC-NEXT: Kind: GLOBAL -; RELOC-NEXT: Name: __stack_pointer -; RELOC-NEXT: Flags: [ UNDEFINED ] -; RELOC-NEXT: Global: 0 -; RELOC-NEXT: - Index: 12 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: myctor ; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ] ; RELOC-NEXT: Function: 10 -; RELOC-NEXT: - Index: 13 +; RELOC-NEXT: - Index: 12 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: mydtor ; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ] ; RELOC-NEXT: Function: 11 +; RELOC-NEXT: - Index: 13 +; RELOC-NEXT: Kind: GLOBAL +; RELOC-NEXT: Name: __stack_pointer +; RELOC-NEXT: Flags: [ UNDEFINED ] +; RELOC-NEXT: Global: 0 ; RELOC-NEXT: - Index: 14 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: .Lcall_dtors.101 @@ -205,25 +205,25 @@ ; RELOC-NEXT: Function: 17 ; RELOC-NEXT: InitFunctions: ; RELOC-NEXT: - Priority: 101 -; RELOC-NEXT: Symbol: 1 +; RELOC-NEXT: Symbol: 0 ; RELOC-NEXT: - Priority: 101 -; RELOC-NEXT: Symbol: 2 +; RELOC-NEXT: Symbol: 1 ; RELOC-NEXT: - Priority: 101 -; RELOC-NEXT: Symbol: 8 +; RELOC-NEXT: Symbol: 7 ; RELOC-NEXT: - Priority: 101 -; RELOC-NEXT: Symbol: 12 +; RELOC-NEXT: Symbol: 11 ; RELOC-NEXT: - Priority: 101 ; RELOC-NEXT: Symbol: 15 ; RELOC-NEXT: - Priority: 202 -; RELOC-NEXT: Symbol: 12 +; RELOC-NEXT: Symbol: 11 ; RELOC-NEXT: - Priority: 202 ; RELOC-NEXT: Symbol: 17 ; RELOC-NEXT: - Priority: 1001 -; RELOC-NEXT: Symbol: 1 +; RELOC-NEXT: Symbol: 0 ; RELOC-NEXT: - Priority: 1001 ; RELOC-NEXT: Symbol: 10 ; RELOC-NEXT: - Priority: 2002 -; RELOC-NEXT: Symbol: 12 +; RELOC-NEXT: Symbol: 11 ; RELOC-NEXT: - Priority: 2002 ; RELOC-NEXT: Symbol: 19 ; RELOC-NEXT: - Type: CUSTOM Index: test/wasm/relocatable.ll =================================================================== --- test/wasm/relocatable.ll +++ test/wasm/relocatable.ll @@ -80,19 +80,19 @@ ; CHECK-NEXT: - Type: CODE ; CHECK-NEXT: Relocations: ; CHECK-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_SLEB -; CHECK-NEXT: Index: 2 +; CHECK-NEXT: Index: 1 ; CHECK-NEXT: Offset: 0x00000004 ; CHECK-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB -; CHECK-NEXT: Index: 0 +; CHECK-NEXT: Index: 2 ; CHECK-NEXT: Offset: 0x0000000A ; CHECK-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB -; CHECK-NEXT: Index: 3 +; CHECK-NEXT: Index: 4 ; CHECK-NEXT: Offset: 0x00000013 ; CHECK-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB -; CHECK-NEXT: Index: 4 +; CHECK-NEXT: Index: 5 ; CHECK-NEXT: Offset: 0x0000001A ; CHECK-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_SLEB -; CHECK-NEXT: Index: 8 +; CHECK-NEXT: Index: 7 ; CHECK-NEXT: Offset: 0x00000026 ; CHECK-NEXT: Functions: ; CHECK-NEXT: - Index: 3 @@ -107,16 +107,16 @@ ; CHECK-NEXT: - Type: DATA ; CHECK-NEXT: Relocations: ; CHECK-NEXT: - Type: R_WEBASSEMBLY_TABLE_INDEX_I32 -; CHECK-NEXT: Index: 6 +; CHECK-NEXT: Index: 3 ; CHECK-NEXT: Offset: 0x00000012 ; CHECK-NEXT: - Type: R_WEBASSEMBLY_TABLE_INDEX_I32 -; CHECK-NEXT: Index: 3 +; CHECK-NEXT: Index: 4 ; CHECK-NEXT: Offset: 0x0000001B ; CHECK-NEXT: - Type: R_WEBASSEMBLY_TABLE_INDEX_I32 -; CHECK-NEXT: Index: 4 +; CHECK-NEXT: Index: 5 ; CHECK-NEXT: Offset: 0x00000024 ; CHECK-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 -; CHECK-NEXT: Index: 5 +; CHECK-NEXT: Index: 12 ; CHECK-NEXT: Offset: 0x0000002D ; CHECK-NEXT: Segments: ; CHECK-NEXT: - SectionOffset: 6 @@ -160,74 +160,74 @@ ; CHECK-NEXT: SymbolTable: ; CHECK-NEXT: - Index: 0 ; CHECK-NEXT: Kind: FUNCTION -; CHECK-NEXT: Name: puts -; CHECK-NEXT: Flags: [ UNDEFINED ] -; CHECK-NEXT: Function: 0 -; CHECK-NEXT: - Index: 1 -; CHECK-NEXT: Kind: FUNCTION ; CHECK-NEXT: Name: hello ; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ] ; CHECK-NEXT: Function: 3 -; CHECK-NEXT: - Index: 2 +; CHECK-NEXT: - Index: 1 ; CHECK-NEXT: Kind: DATA ; CHECK-NEXT: Name: hello_str ; CHECK-NEXT: Flags: [ ] ; CHECK-NEXT: Segment: 0 ; CHECK-NEXT: Size: 7 +; CHECK-NEXT: - Index: 2 +; CHECK-NEXT: Kind: FUNCTION +; CHECK-NEXT: Name: puts +; CHECK-NEXT: Flags: [ UNDEFINED ] +; CHECK-NEXT: Function: 0 ; CHECK-NEXT: - Index: 3 ; CHECK-NEXT: Kind: FUNCTION +; CHECK-NEXT: Name: my_func +; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ] +; CHECK-NEXT: Function: 4 +; CHECK-NEXT: - Index: 4 +; CHECK-NEXT: Kind: FUNCTION ; CHECK-NEXT: Name: foo_import ; CHECK-NEXT: Flags: [ UNDEFINED ] ; CHECK-NEXT: Function: 1 -; CHECK-NEXT: - Index: 4 +; CHECK-NEXT: - Index: 5 ; CHECK-NEXT: Kind: FUNCTION ; CHECK-NEXT: Name: bar_import ; CHECK-NEXT: Flags: [ BINDING_WEAK, UNDEFINED ] ; CHECK-NEXT: Function: 2 -; CHECK-NEXT: - Index: 5 -; CHECK-NEXT: Kind: DATA -; CHECK-NEXT: Name: data_import -; CHECK-NEXT: Flags: [ UNDEFINED ] ; CHECK-NEXT: - Index: 6 ; CHECK-NEXT: Kind: FUNCTION -; CHECK-NEXT: Name: my_func -; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ] -; CHECK-NEXT: Function: 4 -; CHECK-NEXT: - Index: 7 -; CHECK-NEXT: Kind: FUNCTION ; CHECK-NEXT: Name: func_comdat ; CHECK-NEXT: Flags: [ BINDING_WEAK ] ; CHECK-NEXT: Function: 5 -; CHECK-NEXT: - Index: 8 +; CHECK-NEXT: - Index: 7 ; CHECK-NEXT: Kind: DATA ; CHECK-NEXT: Name: data_comdat ; CHECK-NEXT: Flags: [ BINDING_WEAK ] ; CHECK-NEXT: Segment: 5 ; CHECK-NEXT: Size: 3 -; CHECK-NEXT: - Index: 9 +; CHECK-NEXT: - Index: 8 ; CHECK-NEXT: Kind: DATA ; CHECK-NEXT: Name: func_addr1 ; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ] ; CHECK-NEXT: Segment: 1 ; CHECK-NEXT: Size: 4 -; CHECK-NEXT: - Index: 10 +; CHECK-NEXT: - Index: 9 ; CHECK-NEXT: Kind: DATA ; CHECK-NEXT: Name: func_addr2 ; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ] ; CHECK-NEXT: Segment: 2 ; CHECK-NEXT: Size: 4 -; CHECK-NEXT: - Index: 11 +; CHECK-NEXT: - Index: 10 ; CHECK-NEXT: Kind: DATA ; CHECK-NEXT: Name: func_addr3 ; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ] ; CHECK-NEXT: Segment: 3 ; CHECK-NEXT: Size: 4 -; CHECK-NEXT: - Index: 12 +; CHECK-NEXT: - Index: 11 ; CHECK-NEXT: Kind: DATA ; CHECK-NEXT: Name: data_addr1 ; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ] ; CHECK-NEXT: Segment: 4 ; CHECK-NEXT: Size: 4 +; CHECK-NEXT: - Index: 12 +; CHECK-NEXT: Kind: DATA +; CHECK-NEXT: Name: data_import +; CHECK-NEXT: Flags: [ UNDEFINED ] ; CHECK-NEXT: SegmentInfo: ; CHECK-NEXT: - Index: 0 ; CHECK-NEXT: Name: .rodata.hello_str Index: test/wasm/stack-pointer.ll =================================================================== --- test/wasm/stack-pointer.ll +++ test/wasm/stack-pointer.ll @@ -42,7 +42,7 @@ ; CHECK-NEXT: - Type: CODE ; CHECK-NEXT: Relocations: ; CHECK-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB -; CHECK-NEXT: Index: 0 +; CHECK-NEXT: Index: 1 ; CHECK-NEXT: Offset: 0x00000004 ; CHECK-NEXT: Functions: ; CHECK-NEXT: - Index: 0 @@ -52,15 +52,15 @@ ; CHECK-NEXT: Name: linking ; CHECK-NEXT: SymbolTable: ; CHECK-NEXT: - Index: 0 -; CHECK-NEXT: Kind: GLOBAL -; CHECK-NEXT: Name: __stack_pointer -; CHECK-NEXT: Flags: [ UNDEFINED ] -; CHECK-NEXT: Global: 0 -; CHECK-NEXT: - Index: 1 ; CHECK-NEXT: Kind: FUNCTION ; CHECK-NEXT: Name: _start ; CHECK-NEXT: Flags: [ ] ; CHECK-NEXT: Function: 0 +; CHECK-NEXT: - Index: 1 +; CHECK-NEXT: Kind: GLOBAL +; CHECK-NEXT: Name: __stack_pointer +; CHECK-NEXT: Flags: [ UNDEFINED ] +; CHECK-NEXT: Global: 0 ; CHECK-NEXT: - Type: CUSTOM ; CHECK-NEXT: Name: name ; CHECK-NEXT: FunctionNames: Index: test/wasm/weak-alias.ll =================================================================== --- test/wasm/weak-alias.ll +++ test/wasm/weak-alias.ll @@ -77,15 +77,15 @@ ; CHECK-NEXT: - Name: call_alias ; CHECK-NEXT: Kind: FUNCTION ; CHECK-NEXT: Index: 3 +; CHECK-NEXT: - Name: alias_fn +; CHECK-NEXT: Kind: FUNCTION +; CHECK-NEXT: Index: 1 ; CHECK-NEXT: - Name: call_alias_ptr ; CHECK-NEXT: Kind: FUNCTION ; CHECK-NEXT: Index: 4 ; CHECK-NEXT: - Name: call_direct_ptr ; CHECK-NEXT: Kind: FUNCTION ; CHECK-NEXT: Index: 5 -; CHECK-NEXT: - Name: alias_fn -; CHECK-NEXT: Kind: FUNCTION -; CHECK-NEXT: Index: 1 ; CHECK-NEXT: - Name: __heap_base ; CHECK-NEXT: Kind: GLOBAL ; CHECK-NEXT: Index: 1 @@ -187,43 +187,43 @@ ; RELOC-NEXT: - Type: CODE ; RELOC-NEXT: Relocations: ; RELOC-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB -; RELOC-NEXT: Index: 7 +; RELOC-NEXT: Index: 4 ; RELOC-NEXT: Offset: 0x00000004 ; RELOC-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB -; RELOC-NEXT: Index: 2 +; RELOC-NEXT: Index: 1 ; RELOC-NEXT: Offset: 0x00000013 ; RELOC-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB -; RELOC-NEXT: Index: 7 +; RELOC-NEXT: Index: 4 ; RELOC-NEXT: Offset: 0x0000001C ; RELOC-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB -; RELOC-NEXT: Index: 1 +; RELOC-NEXT: Index: 6 ; RELOC-NEXT: Offset: 0x00000027 ; RELOC-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB -; RELOC-NEXT: Index: 1 +; RELOC-NEXT: Index: 6 ; RELOC-NEXT: Offset: 0x00000032 ; RELOC-NEXT: - Type: R_WEBASSEMBLY_TABLE_INDEX_SLEB -; RELOC-NEXT: Index: 7 +; RELOC-NEXT: Index: 4 ; RELOC-NEXT: Offset: 0x0000003A ; RELOC-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB -; RELOC-NEXT: Index: 7 +; RELOC-NEXT: Index: 4 ; RELOC-NEXT: Offset: 0x00000043 ; RELOC-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB -; RELOC-NEXT: Index: 1 +; RELOC-NEXT: Index: 6 ; RELOC-NEXT: Offset: 0x00000050 ; RELOC-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB -; RELOC-NEXT: Index: 1 +; RELOC-NEXT: Index: 6 ; RELOC-NEXT: Offset: 0x0000005D ; RELOC-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB -; RELOC-NEXT: Index: 1 +; RELOC-NEXT: Index: 6 ; RELOC-NEXT: Offset: 0x00000068 ; RELOC-NEXT: - Type: R_WEBASSEMBLY_TABLE_INDEX_SLEB -; RELOC-NEXT: Index: 2 +; RELOC-NEXT: Index: 1 ; RELOC-NEXT: Offset: 0x00000070 ; RELOC-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB -; RELOC-NEXT: Index: 2 +; RELOC-NEXT: Index: 1 ; RELOC-NEXT: Offset: 0x00000079 ; RELOC-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB -; RELOC-NEXT: Index: 1 +; RELOC-NEXT: Index: 6 ; RELOC-NEXT: Offset: 0x00000086 ; RELOC-NEXT: Functions: ; RELOC-NEXT: - Index: 0 @@ -257,40 +257,40 @@ ; RELOC-NEXT: Flags: [ ] ; RELOC-NEXT: Function: 0 ; RELOC-NEXT: - Index: 1 -; RELOC-NEXT: Kind: GLOBAL -; RELOC-NEXT: Name: __stack_pointer -; RELOC-NEXT: Flags: [ UNDEFINED ] -; RELOC-NEXT: Global: 0 -; RELOC-NEXT: - Index: 2 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: direct_fn ; RELOC-NEXT: Flags: [ ] ; RELOC-NEXT: Function: 1 -; RELOC-NEXT: - Index: 3 +; RELOC-NEXT: - Index: 2 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: call_direct ; RELOC-NEXT: Flags: [ ] ; RELOC-NEXT: Function: 2 -; RELOC-NEXT: - Index: 4 +; RELOC-NEXT: - Index: 3 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: call_alias ; RELOC-NEXT: Flags: [ ] ; RELOC-NEXT: Function: 3 +; RELOC-NEXT: - Index: 4 +; RELOC-NEXT: Kind: FUNCTION +; RELOC-NEXT: Name: alias_fn +; RELOC-NEXT: Flags: [ BINDING_WEAK ] +; RELOC-NEXT: Function: 1 ; RELOC-NEXT: - Index: 5 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: call_alias_ptr ; RELOC-NEXT: Flags: [ ] ; RELOC-NEXT: Function: 4 ; RELOC-NEXT: - Index: 6 +; RELOC-NEXT: Kind: GLOBAL +; RELOC-NEXT: Name: __stack_pointer +; RELOC-NEXT: Flags: [ UNDEFINED ] +; RELOC-NEXT: Global: 0 +; RELOC-NEXT: - Index: 7 ; RELOC-NEXT: Kind: FUNCTION ; RELOC-NEXT: Name: call_direct_ptr ; RELOC-NEXT: Flags: [ ] ; RELOC-NEXT: Function: 5 -; RELOC-NEXT: - Index: 7 -; RELOC-NEXT: Kind: FUNCTION -; RELOC-NEXT: Name: alias_fn -; RELOC-NEXT: Flags: [ BINDING_WEAK ] -; RELOC-NEXT: Function: 1 ; RELOC-NEXT: - Type: CUSTOM ; RELOC-NEXT: Name: name ; RELOC-NEXT: FunctionNames: