中间语言 问答列表

哪些工具可以对 IL 进行编译后修改?

作者:John Saunders 提问时间:7/16/2009

最近提到 PostSharp 让我想起了这一点: 去年我工作的地方,我们正在考虑使用 PostSharp 将检测注入到我们的代码中。这是在 Team Foundation Server Team B...

为什么变量“i”和“j”在控制流图中被认为是死的?

作者:Abhishek Ghosh 提问时间:4/14/2021

我正在阅读红龙书中的归纳变量消除主题,在那里我遇到了下面的例子。 考虑下面的控制流图: 图1:原始控制流图 现在,作者对上图应用强度降低,得到下图: 图2:施加强度降低后的控制流程图 例 1...

如何生成LLVM IR代码来调用C++ STL函数?

作者:lonelyjoe 提问时间:7/30/2021

我想生成包含对 C++ STL 函数调用的 LLVM-IR。例如。 我认为我需要通过以下步骤来完成任务。std::sort() 链接到 IRstd::sort() 获取对函数的引用std::sort...

为什么将 double 转换为 double 会发出 conv.r8 IL 指令

作者:Vagaus 提问时间:9/3/2021

C# 编译器在从 进行转换时是否发出 conv.r8 ?double -> double 这看起来完全没有必要(从 int -> int、char -> char 等进行转换)不会发出等效的转换指令...

使用反射从编译的类中获取 ToString-expression?

作者:Andreas Zita 提问时间:10/1/2021

我有一个这样的课程: public class Person { public string FirstName { get; set; } public string LastName { g...

托管代码是在编译后生成的吗?

作者:phougatv 提问时间:2/21/2022

注意:只是想澄清一下,在我遇到一个似乎与另一个MSDN文档相矛盾的MSDN文档后,我目前的理解是否正确。我也已经通过以下链接 - 是否管理 C# 不安全代码? C语言中的不安全代码和非托管代码有什么...

Creating Dymamic Method throws en 异常

作者:Tadeusz 提问时间:3/16/2022

我想创建一些具有 2 个周期的动态方法:首先将一些 N 值推送到评估堆栈上,其次 - 这些 N 值从堆栈中弹出。但 CreateMethod 会引发 InvalidProgramException。我...

使用本地定义的类,而不是库/包提供的类 C# IL Weaving

作者:Amir Hajiha 提问时间:3/22/2022

我见过像 Fody 这样的东西,实际上一直在使用 PropertyChanged,它在实现 INotifyPropertyChanged 接口后减少了样板代码。 我相信这是通过“编织 IL”来完成的...

为什么 callvirt 用于在泛型类型的只读字段上调用方法

作者:Bogey 提问时间:3/29/2022

请考虑以下几点: interface ISomething { void Call(string arg); } sealed class A : ISomething { public vo...

基本块参数是否意味着代码局部性?

作者:rwallace 提问时间:5/14/2022

大多数现代编译器使用某种形式的 SSA 进行内部表示,这需要对值可能来自多个源的变量进行一些表示法。经典版本使用 phi 节点。基本模块参数也是一个选项。据我了解,它们在逻辑上是等价的,块参数可以说是...


共15条 当前第1页