仅在执行路径上应用传递

2023-12-22

我有一个过程正在分析整个模块(使用runOnFunction())。但我想将它应用到每个执行路径上。执行路径是指从程序中的某个点(用 start 注释)开始到程序的终止点(用 end 注释)的指令序列。

我假设我必须通过构造 CallGraph 将模块划分为函数,然后通过在前面提到的 CallGraph 的节点中构造 CFG-s 将每个函数划分为指令。我假设我选择的节点的执行路径是 CallGraph 叶中完成的所有路径(我应该能够在 CFG 之间进行通信)。从该节点我可以使用图形搜索算法查看所有路径。

有没有可能更换runOnFunction() / runOnModule()具有用户定义的方法,例如runOnExecutionPath()?如果是这样,LLVM 中有一个适合存储执行路径的结构吗? 另一种可能性是使用getAnalysis<CallGraph> or getAnalysis<CFG>?我很困惑。

非常感谢您的任何建议!


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅在执行路径上应用传递 的相关文章

  • Haskell GHC 动态编译仅适用于第一次编译

    按照发布的 GHC 教程here http www bluishcoder co nz 2008 11 dynamic compilation and loading of html并按照以下建议对此代码进行更改我之前问过的一个堆栈溢出问题
  • 使用 Eclipse 创建 java 可执行文件

    这完全是一个新手问题 我在 Ubuntu 上运行 Eclipse 我创建了一个测试项目 我想将其编译为可执行文件 Linux 相当于 Windows exe 文件 这是我的程序的内容 public class MyTest public s
  • LR(k) 到 LR(1) 语法转换

    我对以下内容感到困惑quote http en wikipedia org wiki LR parser Theory来自维基百科 换句话说 如果一种语言足够合理 允许 高效的单遍解析器 可以用 LR k 语法来描述 语法总是可以机械地转化
  • 在编译时检测编译器版本

    这既是一个问题 也是一个参考 我希望人们能够在此基础上进行构建 以便有类似问题的人可以重用它 我们如何可靠地检测 C C ObjC 编译器的特定版本 现在我知道了 Visual Studio 的答案 并部分知道了 Xcode 的答案 现在
  • Haskell 中的 Futamura 投影的证明

    我读了 Dan Piponi 的优秀博客文章二村博士的三个投影 http blog sigfpe com 2009 05 three projections of doctor futamura html 在文章的最后 他有一个附录 其中包
  • 文本段的名称从何而来?

    传统的汇编器和更高级别的编译器使用多个内存segments 根据预期用途 因此 有数据段 堆栈段 bss 和文本段 文本段也称为代码段 Text部分 为了机器码 我问过所有我能找到的老前辈 像机器代码这样难以阅读的东西是如何被称为 文本段
  • Java 中的合成字段是什么? [复制]

    这个问题在这里已经有答案了 有人可以用一种易于理解的方式解释 Java 中合成字段的重要性吗 我记得在非静态内部类的上下文中阅读它 其中每个此类内部类实例都维护对封闭类的引用 为什么这样的引用 字段被称为合成字段 合成字段是编译器创建的字段
  • 使用 LLVM 内联特定函数调用

    给定一个llvm CallInst 我如何告诉内联器内联这个特定的调用 我可以将目标函数标记为AlwaysInline这将内联调用 但它也会内联每个调用 也许有某种方法可以在我发出特定调用时调用内联函数 内联基本块内的所有调用也可以 您可以
  • 有没有办法在 Xcode 4 中为 ARM 而不是 Thumb 进行编译?

    如果有很多浮点运算正在进行 Apple 建议针对 ARM 进行编译 而不是针对拇指进行编译 我的整个应用程序几乎是一个大型浮点运算 iOS 应用程序开发工作流程指南中是这样说的 iOS 设备支持两种指令集 ARM 和 Thumb Xcode
  • LLVM 尾调用优化

    以下是我对事情的理解 当函数 f 调用自身是其最后一个动作时 它是尾递归的 通过形成循环而不是再次调用函数 可以显着优化尾递归 函数的参数已就地更新 并且函数体再次运行 这称为递归尾调用优化 LLVM 在使用 fastcc GHC 或 Hi
  • 适用于 Windows 的 C++11 编译器

    我刚刚在 Channel9 上看了一些视频 我发现 lambda 之类的东西真的很酷 当我尝试复制该示例时 它失败了 auto也没用 我正在使用诺基亚的 qtcreator 它随 gcc 4 4 0 一起提供 我想知道哪个编译器实现了有趣的
  • 识别 IR 中的阵列类型

    我一直在尝试使用以下代码来识别 IR 中的数组访问 for BasicBlock iterator ii BB gt begin ii2 ii BB gt end ii Instruction I ii if GetElementPtrIn
  • C# 编译器错误?为什么这个隐式用户定义转换无法编译?

    给定以下结构 public struct Foo
  • 扩展 Mono C# 编译器:有任何文档或先例吗?

    我目前正在参与一些有趣的编程语言研究 到目前为止 这些研究的重点是通过一些非常强大的基于程序员生产力的功能来扩展即将推出的 Java 7 0 编译器 这项工作应该同样适用于 C 等相关编程语言 我目前正在研究用于对该功能的 C 端口进行原型
  • XCode 4.2 编译器错误

    当我使用 XCode 4 2 创建新项目 例如 单视图 iOS 应用程序 时 支持文件 文件夹中的 main m 文件如下所示 import
  • 错误:在 Java 中声明布尔值时不是一个语句

    下面的代码 boolean continue false 返回以下错误 error not a statement boolean continue false 为什么会发生这种情况 我对布尔值非常熟悉 试试这个 boolean cont
  • .java 和 .scala 类之间是否可能存在循环依赖?

    假设我在 java 文件中定义了类 A 在 scala 文件中定义了类 B A 类使用 B 类 B 类使用 A 类 如果我使用 java 编译器 则会出现编译错误 因为 B 类尚未编译 如果我使用scala编译器A类将找不到 有没有可以同时
  • TypeScript 编译错误 TS5037:除非提供“--module”标志,否则无法编译外部模块

    无法编译任何 TS node js 项目 包括示例中列出的项目 http typescript codeplex com sourcecontrol latest samples imageboard README txt http typ
  • 非虚实例方法继承是如何解决的?

    通过 C 从 CLR 引用 它读起来就像call将在运行时通过 CLR 搜索由基类型定义的方法 Then callIL指令用于调用实例或虚拟 方法中 您必须指定一个引用对象的变量 方式 变量本身的类型指示定义该方法的类型 CLR 应该调用
  • 是否可以用 C# 为 Android 编写应用程序?

    我们都知道Android运行Dalvik VM程序 通常开发人员用 Java 编写程序并将其编译为 Dalvik 字节码 我想知道是否有可能创建一个可以接受 C 代码并将其编译为 Dalvik 字节码的编译器 嗯 这是一种选择 或者您可以在

随机推荐

  • Ruby:将两个哈希合并为一个并连接值

    2 hash h1 s1 gt 2009 7 27 s2 gt 2010 3 6 s3 gt 2009 7 27 h2 s1 gt 12 29 15 s2 gt 10 00 17 s3 gt 12 25 52 我想将两个哈希合并为一个 如下
  • sbt 编译时警告:类型模式 List[String] 中的非变量类型参数 String

    我的 sbt 显示警告消息 non variable type argument String in type pattern List String the underlying of List String is unchecked s
  • Eclipse 意外退出 2022-06 [重复]

    这个问题在这里已经有答案了 我开始学习Java 几天来一直遇到这个错误 我安装了 eclipse 并且运行得很好 第二天 当我尝试打开该应用程序时 它打不开 并且收到一条消息 无法打开应用程序 Eclipse 进而 Eclipse 意外退出
  • Python 和 urllib2:如何使用参数发出 GET 请求

    我正在构建一个 API API 它基本上是内部 REST Web 服务的包装器 Web 应用程序将向该服务发出大量请求 一些Web服务调用需要是GET而不是POST 而是传递参数 是否有一种 最佳实践 方法将字典编码为查询字符串 例如 fo
  • 有选择地从 MySQL 中删除大部分重复的记录

    我有一张桌子 PRICE UPDATE id int 5 auto increment primary unique part number varchar 10 non null price float 10 2 non null 一些p
  • 如何从 SQL Server 导出到 XML

    从 SQL Server 表或视图 导出到 XML 的最简单方法是什么 这就是我到目前为止所做的 执行Sql任务 SELECT FROM Production Product FOR XML AUTO TYPE ROOT Data 结果集
  • F# 编译错误

    我有以下导致编译错误的 F 代码 persistence fs 32 21 错误 FS0072 根据此程序点之前的信息查找不确定类型的对象 在此程序点之前可能需要类型注释来约束对象的类型 这可以使查找得以解决 错误出现在 serialize
  • 正则表达式如何匹配除空行之外的所有行尾?

    如果我有文字 AAAAAA BBBBBB CCCCCC DDDDDD EEEEEE FFFFFF GGGGGG HHHHHH 我想匹配除空行之外的所有行尾并将行尾替换为制表符 s 部分有效 但它也匹配非空行的最后一个字符 不起作用 什么是正
  • GNU 语句表达式的编译器支持

    哪些现代编译器支持 Gnu 语句表达式 C 和 C 语言 我应该在什么版本中使用语句表达式 语句表达式就像 code code retval int b 56 int c int a a sin b a 我已经知道一些这样的编译器 海湾合作
  • 如何编写一个以 C++ 代码作为输入的 C++ 代码生成器?

    我们有一个 CORBA 实现 可以为我们自动生成 Java 和 C 存根 由于 CORBA 生成的代码很难使用 因此我们需要围绕 CORBA 代码编写包装器 帮助器 所以我们有一个两步代码生成过程 是的 我知道这很糟糕 CORBA IDL
  • PHP/MySQL 更好的用户搜索

    为了让代码焕发新的活力 我大部分时间都是在 14 多年前编写的 我发现我当时写的可爱的小设置 在某些地方缺乏 即处理用户输入 Lesson 永远不要低估用户通过验证器注入垃圾 拼写错误和欺骗的能力 旧方法已达到临界质量 因为 SELECT
  • 在 Ubuntu 16.04 Xenial 上安装 PostGIS

    我想在 Ubuntu xenial 16 04 上安装带有 PostgreSQL 9 6 的 PostGIS 2 3 sudo sh c echo deb http apt postgresql org pub repos apt trus
  • php.ini 和 .htaccess 有什么区别?

    假设我想改变的值 php value post max size 20M in htaccess post max size 20M in php ini 两者都会执行相同的操作 那么有什么区别php ini and htaccess 中的
  • 如何从意图服务向活动发送消息[重复]

    这个问题在这里已经有答案了 基本上 我有一个带有进度对话框的活动 我正在向意图发送一条消息 以从互联网加载所有数据 而应用程序中不会出现任何问题 但是 我能够向服务发送消息 但无法将消息重新发送到活动 该怎么办 以下是我向服务发送消息的方式
  • stl::list 对象的最大数量

    问题是在数据集中找到周期性图形模式 所以我有 1000 个时间步长 每个时间步长都有一个图表 编码为整数 因此 该图可能出现 999 个可能的周期 我还定义了一个相位偏移 定义为 时间步模周期 对于在周期为 2 的第 5 个时间步长中首次出
  • 在没有 cookie 的情况下保留浏览器客户端 javascript/HTML 数据

    我创建了一个使用 Python HTML 和 javascript 的网站 主主页有 19 个可编辑变量字段 如果我更改任何这些字段值 然后离开页面 单击我的其他链接选项卡之一 然后返回我的主页 我的所有变量都会重置回默认值 因为页面会重新
  • 如何在 python 中获得按创建日期排序的目录列表?

    获取目录中所有文件的列表 按日期排序 的最佳方法是什么 创建 修改 在 Windows 机器上使用 python 我过去曾使用 Python 脚本执行此操作来确定目录中最后更新的文件 import glob import os search
  • 为什么我不能将 Number 转换为 Double?

    weight是一个字段 数字在火库 https firebase google com docs firestore manage data data types 设置100 int weight json weight double we
  • 我什么时候应该在片段中获得宽度视图

    我在 Linearlayout 中以编程方式添加视图 按钮 LinearLayout 通过 Fragment 中的 XML 进行布局 我想获取按钮宽度 但总是返回0 我用谷歌搜索了这个问题 getWidth 仅适用于WindowFocusC
  • 仅在执行路径上应用传递

    我有一个过程正在分析整个模块 使用runOnFunction 但我想将它应用到每个执行路径上 执行路径是指从程序中的某个点 用 start 注释 开始到程序的终止点 用 end 注释 的指令序列 我假设我必须通过构造 CallGraph 将