mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
e39dba9f07
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
27 lines
661 B
LLVM
27 lines
661 B
LLVM
; 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 !{}
|