在使用llvm生成代码期间,更喜欢llvm :: StringMap或std :: map

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

我目前正在开展一个项目,我必须使用符号表跟踪不同的变量。类似于LLVM主页上提供的万花筒tutorial

在示例代码中,他们使用std :: map来实现此功能。

static std::map<std::string, AllocaInst*> NamedValues;

在类似于教程的实际场景中,llvm::StringMap

llvm::StringMap< ValueTy, AllocatorTy > 

比std :: map方法更受欢迎?

c++ llvm
1个回答
2
投票

我不确定,但我真的没有看到为什么llvm :: StringMap比std :: map更受欢迎的原因。基于on these slides(幻灯片23,24),似乎llvm :: StringMap比插入和查找的std :: map和std :: unordered_map慢。

另外,正如here所解释的那样:

但是,StringMap迭代顺序不能保证是确定性的,因此任何需要它的用法都应该使用std :: map。

所以,请记住这一点,以防你最终使用llvm :: StringMap而不是std :: map。

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