mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-15 19:24:33 +00:00
Bitcode: Add METADATA_NODE and METADATA_VALUE
This reflects the typelessness of `Metadata` in the bitcode format, removing types from all metadata operands. `METADATA_VALUE` represents a `ValueAsMetadata`, and always has two fields: the type and the value. `METADATA_NODE` represents an `MDNode`, and unlike `METADATA_OLD_NODE`, doesn't store types. It stores operands at their ID+1 so that `0` can reference `nullptr` operands. Part of PR21532. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224073 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
26
test/Bitcode/metadata.3.5.ll
Normal file
26
test/Bitcode/metadata.3.5.ll
Normal file
@@ -0,0 +1,26 @@
|
||||
; RUN: llvm-dis < %s.bc | FileCheck %s
|
||||
|
||||
; Check that metadata encoded in 3.5 is correctly understood going forward.
|
||||
;
|
||||
; Bitcode assembled by llvm-as v3.5.0.
|
||||
|
||||
define void @foo(i32 %v) {
|
||||
; CHECK: entry:
|
||||
entry:
|
||||
; CHECK-NEXT: call void @llvm.bar(metadata !0)
|
||||
call void @llvm.bar(metadata !0)
|
||||
|
||||
; CHECK-NEXT: ret void, !baz !1
|
||||
ret void, !baz !1
|
||||
}
|
||||
|
||||
declare void @llvm.bar(metadata)
|
||||
|
||||
@global = global i32 0
|
||||
|
||||
; CHECK: !0 = metadata !{metadata !1, metadata !2, i32* @global, null}
|
||||
; CHECK: !1 = metadata !{metadata !2, null}
|
||||
; CHECK: !2 = metadata !{}
|
||||
!0 = metadata !{metadata !1, metadata !2, i32* @global, null}
|
||||
!1 = metadata !{metadata !2, null}
|
||||
!2 = metadata !{}
|
Reference in New Issue
Block a user