[LLVM寄存器在功能中使用

问题描述 投票:1回答:1

在下面的代码中,该函数具有2个参数,我假设它们存储在%0%1中。Jet该功能以%3开头。%2用于什么?

define void @swap(i32*, i32*) #0 {
  %3 = alloca i32*, align 8
  %4 = alloca i32*, align 8
  %5 = alloca i32*, align 8
  store i32* %0, i32** %3, align 8
  store i32* %1, i32** %4, align 8
  %6 = load i32*, i32** %3, align 8
  store i32* %6, i32** %5, align 8
  %7 = load i32*, i32** %4, align 8
  store i32* %7, i32** %3, align 8
  %8 = load i32*, i32** %5, align 8
  store i32* %8, i32** %4, align 8
  ret void
}

以上LLVM代码是使用clang从此c代码生成的:

void swap(int* i, int* j){
    int* temp = i;
    i = j;
    j = temp;
}
llvm llvm-clang
1个回答
0
投票

%2是条目基本块的名称。非进入BB的名称必须明确,例如<label>:123

© www.soinside.com 2019 - 2024. All rights reserved.