这是 ldmd2 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
LDMD - LLVM D 编译器的手册页
商品描述
概述:基于 LLVM 的 D 编译器
用法:ldc [选项] 文件 - 跑 程序参数...
选项:
-D - 生成文档
-dd=- 将文档文件写入
目录
-Df=- 将文档文件写入
-H - 生成“头”文件
-HD=- 将“头”文件写入目录
-高频=- 将“头”文件写入
-我=- 在哪里寻找进口
-J=- 在哪里寻找字符串导入
-L=- 经过到链接器
设置优化级别:
-O - 相当于 -氧气
-氧气 - 无优化(默认)
-氧气 - 简单的优化
-氧气 - 良好的优化
-氧气 - 积极的优化
-氧气 - 链接时间优化
-氧气 - 链接时间优化
-注释 - 用人类可读的方式注释位码
源代码
-asm-详细 - 向指令添加注释。
-c - 不要链接
-check-printf-调用 - 验证 printf 调用格式字符串
参数
-代码模型 - 选择代码模型
=默认
- 目标默认代码模型
=small - 小代码模型
=内核
- 内核代码模型
=中等
- 中等代码模型
=large - 大代码模型
-d - 允许弃用的语言功能
-d-调试=- 在调试代码中编译 >= 或者
由.
-d-版本=- 在版本代码中编译 >= 或者
由
-调试库=- 为调试构建设置默认库
-默认库=- 为非调试构建设置默认库
-部门=- 将模块依赖写入文件名
-启用断言 - (*) 启用断言
-启用边界检查 - (*) 启用数组边界检查
-启用合同 - (*) 启用功能前和
后置条件
-禁用-d-通行证 - 禁用特定于 D 的传入 -O
-禁用多余的 fp 精度 - 禁用可能会增加 FP 的优化
精确
-禁用-fp-elim - 禁用帧指针消除
优化
-禁用-gc2stack - 禁止将 GC 分配提升到
堆栈内存在 -O
-启用内联 - (*) 启用函数内联 -O
-启用不变量 - (*) 启用不变量
-禁用后 RA 调度程序 - 注册后禁用调度
分配
-启用后置条件 - (*) 启用函数后置条件
-启用前置条件 - (*) 启用功能前提条件
-禁用-简化-drtcalls - 禁用运行时调用的简化
-O
-禁用溢出融合 - 禁止将溢出代码融合到
说明
-启用-正确-eh-支持 - 使 -降低调用 通过插入
昂贵但正确的 EH 代码
-启用-嗯 - 发出 DWARF 异常处理(如果
目标支持)
-启用仅限有限 fp 数学 - 启用假设非 NaN 的优化
/ +-信息
-启用-fp-mad - 启用不太精确的 MAD 指令
产生
-启用加载预 -
-启用-sjlj-eh - 发出 SJLJ 异常处理(如果
目标支持)
-启用不安全 fp 数学 - 启用可能会降低 FP 的优化
精确
-浮动-abi - 选择浮动 ABI 类型
=默认
- 目标默认浮点 ABI 类型
=soft - 软浮动 ABI(由 -软浮动)
=hard - 硬浮点 ABI(使用 FP 寄存器)
生成调试信息:
-g - 生成调试信息
-GC - 与...一样 -g,但假装是C
-救命 - 显示可用选项(--help-隐藏
更多)
-忽略 - 忽略不支持的编译指示
-internalize-public-api-文件=- 包含符号名称列表的文件
保存
-internalize-public-api-list=- 要保留的符号名称列表
-加入活动间隔 - 合并副本(默认值=真)
-限制浮点精度=- 生成低精度内联序列
一些浮动库调用
-立方米 - 32 位目标
-立方米 - 64 位目标
-三月=- 生成代码的架构:
-mattr=- 目标特定属性(-mattr=帮助
细节)
-单片机=- 针对特定的 CPU 类型(-微处理器=帮助
细节)
-三倍=- 覆盖目标三重
-嵌套-ctx - 如何构造嵌套函数的
上下文:
=数组
- 指向变量的指针数组(包括多级)
=混合
- 指向变量结构的指针列表,每个级别一个。
-noasm - 禁止使用内联汇编器
-nodefaultlib - 不要为链接添加默认库
隐含地
-noruntime - 不允许代码生成隐式
运行时调用
-更新 - 之前不要运行验证通过
写位码
-nozero-在 bss 中初始化 - 不要将零初始化符号放入
bss部分
-O- - 不写目标文件
-od=- 将目标文件写入目录
-的=- 用作为输出文件名
-操作 - 不要从源文件中剥离路径
-oq - 用完全限定的方式编写目标文件
名称
-输出-BC - 编写 LLVM 位码
-输出-ll - 写 LLVM IR
-输出-o - 编写本机对象
-输出-s - 编写本机程序集
-预RA计划 - 可用的指令调度程序(之前
寄存器分配):
=fast - 快速次优列表调度
=列表-td
- 自顶向下列表调度程序
=列表-tdrr
- 自上而下的寄存器减少列表调度
=列表毛刺
- 自下而上的寄存器减少列表调度
=默认
- 目标的最佳调度程序
-印刷机安装说明 - 打印生成的机器码
-配置文件估计器循环权重=- 用于的循环执行次数
轮廓估计器
-配置文件信息文件=- 配置文件加载 -配置文件加载器
-配置文件随机性 - 如何随机选择配置文件:
=全球
- 全球柜台
=ra_global
- 注册分配的全局计数器
=rdcc - 循环计数器
-重新对齐堆栈 - 如果需要,重新对齐堆栈
-regalloc - 注册要使用的分配器:(默认 =
线性扫描)
=线性扫描
- 线性扫描寄存器分配器
-释放 - 禁用断言、不变量、合同和
边界检查
-搬迁模型 - 选择搬迁模式
=默认
- 目标默认重定位模型
=静态
- 不可重定位的代码
=pic - 完全可重定位、位置无关的代码
=动态无图片
- 可重定位的外部引用,不可重定位的代码
-重写器 - 要使用的重写器:(默认值:本地)
=本地
- 本地重写器
=微不足道
- 微不足道的重写器
-运行=- 程序参数...
-schedule-livein-copys - 安排住户登记册的副本
-时间表溢出 - 安排溢出代码
-收缩包装 - 收缩包装被调用者保存的寄存器
泄漏/恢复
-单个对象 - 只创建一个输出对象文件
-软浮动 - 生成软件浮点库
电话
-堆栈对齐=- 覆盖默认堆栈对齐
-堆栈保护缓冲区大小=- 要考虑的缓冲区的下限
用于堆栈保护
-统计 - 启用程序的统计输出
-tailcallopt - 开启尾调用优化。
-时间流逝 - 每次通过时间,打印经过的时间
每个出口
-单元测试 - 在单元测试中编译
-展开表 - 为所有函数生成展开表
-v - 详细
-v-cg - 详细的代码生成
-验证-dom-信息 - 验证支配者信息(耗时)
-版 - 显示该程序的版本
-vv - 非常冗长
-w - 启用警告
-x86-asm-语法 - 选择从 X86 发出的代码样式
后端:
=att - 发出 AT&T 风格的程序集
=intel - 发出 Intel 风格的程序集
-d-调试 也可以不带选项指定,在这种情况下它会启用所有调试检查
(即(断言、边界检查、合同和不变量)以及充当 -d-调试=1
标有 (*) 的选项也有 -禁用-FOO 具有倒置意义的变体。
基于 DMD v1.051 和 llvm 2.6(2 年 17 月 39 日星期三 53:2009:1999) 版权所有 (c) 2009-XNUMX
Digital Mars 和 Tomas Lindquist Olsen 由 Walter Bright 和 Tomas Lindquist Olsen 撰写
D 语言文档: http://www.digitalmars.com/d/1.0/index.html 最不发达国家主页:
http://www.dsource.org/projects/ldc
使用 onworks.net 服务在线使用 ldmd2