E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
LLVM源码系列
RISC-V工具链简介
关键词:RISC-V、集成开发环境、剑池CDK、调试、编译、软件模拟GCC,
LLVM
,GDB,QEMU,MDK,IAR,ECLIPSE前言最近RISC-V比较火,它的开放性和可扩展性打开了人们对可定制处理器的想象空间
Roy_Wu314
·
2023-11-29 20:41
RISC-V
risc-v
嵌入式
Metal语法规范
Metal语言使用Clang和
LLVM
进行编译处理,编译器对于在GPU上的代码执行效率有更好的控制Metal基于C++11.0语言设计的,在C++基础上多了一些扩展和限制,主要用来编写在GPU上执行的图像渲染逻辑代码以及通用并行计算逻
windy_3c22
·
2023-11-29 17:54
Spring
源码系列
-第1章-Spring源码纵览
必读源码是循循渐进的,前面我会省略中间很多目前不需要深入的代码,所以会看起来代码比较少。省略的地方我会打上这样的标识//...或者//...如果没打也不代表我没省略,可能是忘记了,不要看懵了。第1章-Spring源码纵览概述Spring源码纵览这一节,主要是先了解下Spring的一些核心东西,所以前后可能关联不是特别深,跳跃性比较大,往后看就行。简单的继承关系图蓝色实线箭头是指继承关系绿色虚线箭头
xiejunxing
·
2023-11-28 22:29
大厂学苑-spring源码
spring
java
后端
spring
源码系列
---扫描与解析配置类
org.springframework.context.support.AbstractApplicationContext#refreshpublicvoidrefresh()throwsBeansException,IllegalStateException{synchronized(this.startupShutdownMonitor){//准备刷新的上下文//Preparethiscon
性感的大表哥
·
2023-11-28 22:57
Spring
spring
iOS底层探索之
LLVM
(一)——初识
LLVM
在优化之前我们必须要先了解
LLVM
,那什么是
LLVM
呢?
LLVM
.png在介绍
LLVM
之前,先来认识一下解释型语言和编译型语言。
俊而不逊
·
2023-11-28 08:16
开源编译器
LLVM
-源码编译
1.编译参考详细的cmake编译选项,参考:Building
LLVM
withCMake—
LLVM
18.0.0gitdocumentation2.编译脚本utils.bashbuild-
llvm
.sh依赖
WRichards
·
2023-11-28 06:41
编译器LLVM
github
ai
llvm
编译器实战 第六章 后端
llvm
编译器实战第六章后端1、
LLVM
后端组织结构的概述代码生成器的不同阶段描述(1)指令选择阶段:(2)指令调度(3)寄存器分配(4)代码输出后端代码结构目标无关的代码生成器库指令选择阶段介绍2、如何解释描述后端的各种
春江花月夜晨
·
2023-11-27 18:42
llvm
借助AxProtector CTP,软件更能坚守抗盗版和逆向工程阵地
最新的编译时保护技术利用
LLVM
编译器框架,以实现高效的保护目标。AxProtectorCTP确保应用程序的安全性,同时符合特定平台的指导原则,无需运行时代码修改。
Dola_Zou
·
2023-11-27 02:09
软件加密
加密狗
工业自动化
代码保护
软件加密
自动化
计算机视觉
【crash】 cxa_pure_virtual 崩溃分析与原理
关键字:cxxabi,
llvm
,cxa_pure_virtual,vptr 首先我们看一下崩溃的现象,线上的崩
落樱弥城
·
2023-11-27 01:53
c++
bug
c++
C++ libcxxabi中dynamic_cast 实现
摘要:最近在看一个崩溃的过程中详细看了一遍cxxabi的定义,就想着看一些
llvm
中cxxabi的一些实现。本文描述了cxxabi中dynamic_cast的实现以及原理。
落樱弥城
·
2023-11-27 01:22
c++
c++
开发语言
Hive
源码系列
(六)编译模块之词法、语法解析 (上)
词法、语法解析模块会先介绍一下antlr环境(上)。然后举实际案例说明怎么使用antlr工具、利用antlr生成的Lexer、Parser、TreeParser代码,获取asttree。这些都是hive获取asttree的过程,理解了这些,再理解hive的asttree就很容易了(中)。最后详细介绍hive词法、语法解析的源码以及hiveAstTree的使用(下)1、什么是词法分析、什么是语法分析
小萝卜算子
·
2023-11-26 13:12
google镜像网址收集
llvm
15源码分析:函数调用链、流程分析、链长短、频率分析搞IT的遇到问题,光靠baidu有时真的解决不了问题,所以时不时的就需要求助google,里面有好多国外网友的博客、stackoverflow
ziix
·
2023-11-25 18:24
python
LLVM
编译
llvm
工具牛刀小试编写hello.c#includeintmain(){printf("helloworld\n");}将C文件编译为本机可执行文件,执行clang命令如下:$clanghello.c-ohelloPS
破愚
·
2023-11-25 13:33
吊打面试官之项目线上问题排查
、磁盘及IO相关问题4.1、模拟磁盘满的场景4.2、排查套路5、业务代码问题5.1、模拟ArithmeticException的场景6.2、排查套路6、往期佳文6.1、面试系列6.2、技术系列6.3、
源码系列
Java学习之乐
·
2023-11-24 20:14
面试之吊打面试官系列
面试
问题排查
中高级
编译
LLVM
RISCV编译器QuickStart
LLVM
OverView
LLVM
项目是模块化和可重用的编译器和工具链技术的集合。尽管它的名字,
LLVM
与传统的虚拟机没有什么关系。“
LLVM
”这个名字本身并不是一个缩写词;这是该项目的全称。
papaofdoudou
·
2023-11-24 10:09
LLVM
linux
linux 反汇编文件解析,如何在Linux中反汇编二进制可执行文件以获取汇编代码?...
可拆卸AArch64,MIPS或任何包含objdump和的机器代码的便携式工具
llvm
-objdump。昂纳雾的反汇编器,objconv是相当不错的。
丁先生的酥心糖
·
2023-11-24 08:42
linux
反汇编文件解析
2311rust,到66版本更新
1.60.0稳定版基于源码的代码覆盖率rustc中已稳定支持基于
LLVM
的覆盖率检测.可用-Cinstrument-coverage重构代码,如:RUSTFLAGS="-Cinstrument-coverage"cargobuild
fqbqrr
·
2023-11-23 09:47
rust
rust
LLVM
学习笔记 - 基本流程
LLVM
是模块化,可重用的编译器以及工具链技术的集合,并且
LLVM
就是全称并不是简称,所以说
LLVM
是一种编译器显然是不够准确的,她至少可以代表两个,1.
LLVM
编译架构2.
LLVM
编译器后端基本的编译器架构前面昨天有写过就不赘述了在
yokan_de_s
·
2023-11-23 04:02
编译
LLVM
学习笔记(8)
2.3.汇编处理描述至于关于读写汇编格式指令信息的封装,TableGen提供了类Target(target.td)作为各目标机器的基类。1059classTarget{1060//InstructionSet-Instructionsetdescriptionforthistarget.1061InstrInfoInstructionSet;10621063//AssemblyParsers-Th
wuhui_gdnt
·
2023-11-23 04:32
LLVM学习笔记
compiler
编译器
llvm
LLVM
学习笔记(9)
3.TableGen生成的代码3.1.概述在编译
LLVM
时,首先会调用TableGen解析TD文件,产生C++源代码,然后这些C++源代码与
LLVM
的其他源代码一起被编译为
LLVM
执行文件。
wuhui_gdnt
·
2023-11-23 04:32
LLVM学习笔记
compiler
编译器
llvm
LLVM
学习笔记(35)
3.5.1.3.初步构建调度类型每条指令定义中的成员Itinerary是InstrItinClass类型,用以描述该指令的执行步骤。前面我们已经看过一些X86指令定义的例子,其中成员Itinerary被设置为InstrItinClass的派生定义,比如用在指令LOCK_ArithBinOp8mr的IIC_ALU_NONMEM。另外,指令定义里的成员SchedRW(类型list)则是描述该指令对资源
wuhui_gdnt
·
2023-11-23 04:32
LLVM学习笔记
LLVM
学习笔记(6)
2.2.4.2.可复用的结构2.2.4.2.1.PatFrag高级语言的特征之一是支持数据与结构的复用,TD语言也吸取了这些长处,尝试为复杂而基本的操作提供复用的可能性。这就是PatFrag(SelectionTargetDAG.td):606classPatFrag:SDPatternOperator{608dagOperands=ops;609dagFragment=frag;610codeP
wuhui_gdnt
·
2023-11-23 04:31
LLVM学习笔记
compiler
编译器
llvm
LLVM
学习笔记(62)
这个TargetLowering派生类,由基于SelectionDAG的指令选择器用于描述
LLVM
代码如何被降级为SelectionDAG操作。至于其他,这个类展示了:用于各种ValueT
wuhui_gdnt
·
2023-11-23 04:01
LLVM学习笔记
学习
笔记
llvm
编译
LLVM
学习笔记(57)
4.2.代码入口(以下为7.0代码)
LLVM
有两个编译器。
wuhui_gdnt
·
2023-11-23 04:31
学习
笔记
llvm
编译
LLVM
学习笔记(58)
387staticintcompileModule(char**argv,
LLVM
Context&Con
wuhui_gdnt
·
2023-11-23 04:31
llvm
编译
LLVM
学习笔记(55)
要理解这,我们首先在下图概括指令选择之前所有的步骤,从左上角的
LLVM
IR步骤开始:首先,一个SelectionDAGBuilder实例访问每个函数并为每个基本块创建一个SelectionDAG对象。
wuhui_gdnt
·
2023-11-23 04:30
笔记
llvm
编译
LLVM
学习笔记(56)
4.1.4.DAG合并与合法化来自SelectionDAGBuilder的SelectionDAG输出还不能进行指令选择,必须通过额外的转换——显示在上图。在指令选择前应用的遍序列如下:匹配一组节点,在有利时使用更简单的构造来替换它们,DAG合并遍优化SelectionDAG的结构。例如,(add(RegisterX),(constant0))可以折叠为(RegisterX)。类似的,目标机器的合
wuhui_gdnt
·
2023-11-23 04:30
学习
笔记
llvm
编译
LLVM
学习笔记⑦
别名别名不会创建任何新的数据,只是现有位置的新符号和元数据。别名有一个名字和别名,可以是全局值或者常量表达式。别名可能具有可选的连接类型,可选的运行时抢占说明符,可选的可见性属性,可选的DLL存储类和一个可选的tls模型。语法@=[Linkage][PreemptionSpecifier][Visibility][DLLStorageClass][ThreadLocal][(unnamed_add
m0_46220969
·
2023-11-23 04:28
LLVM
llvm
LLVM
学习笔记④
TLS(ThreadLocalStorage)线程本地存储模型:一个变量可以被定义为thread_local,然后这个变量不能被线程共享(每个线程享有独立的变量副本)并非所有的目标都支持TLS。一个TLS变量可以被指定为以下的TLS模型之一:①loacaldynamic仅在当前共享库中使用的变量②initialexec不会被动态加载的模块中的变量③localexec在可执行文件中定义的变量,并且仅
m0_46220969
·
2023-11-23 04:58
LLVM
llvm
LLVM
学习笔记⑤
全局变量①全局变量定义在编译时而不是运行时分配的内存区域。②全局变量必须被初始化③全局变量也可以在其他编译单元中声明,这样的话就没有初始化程序了。④全局变量可以指定一个连接类型(前面有说到)无论是全局变量定义还是声明,都可以放一个显式的section在里面,并且可以指定可选的显式对齐。如果变量声明的显式或推断部分信息与其定义之间不匹配,则产生的行为是未定义的。一个变量可以被定义为一个全局const
m0_46220969
·
2023-11-23 04:58
LLVM
llvm
LLVM
学习笔记⑥
函数
LLVM
函数定义包括"define"关键字,一个可选的链接类型,一个可选的运行时抢占说明符,一个可选的可见性样式,一个可选的DLL存储类,一个可选的调用约定,一个可选的unnamed_addr属性,
m0_46220969
·
2023-11-23 04:58
LLVM
llvm
LLVM
学习笔记③
调用约定:
LLVM
functions,calls和invokes都可以为调用指定一个可选的调用约定。
m0_46220969
·
2023-11-23 04:28
LLVM
llvm
LLVM
学习笔记①
LLVM
标识符:(两种类型)1、全局标识符(函数、全局变量),以‘@’字符开头2、本地标识符(寄存器名称、类型),以‘%’字符开头(三种格式)1、有命名值:表示带有浅醉的字符串,例如%foo,@DivisionByZero
m0_46220969
·
2023-11-23 04:27
LLVM
llvm
LLVM
学习笔记②
高级结构:1、模块结构
LLVM
程序由模块(Module)组成,每个模块都是源程序的翻译单元,每个模块由函数、全局变量、和符号表项组成。
m0_46220969
·
2023-11-23 04:27
LLVM
llvm
LLVM
学习笔记(62)
4.4.3.3.2.指令处理的设置4.4.3.3.2.1.目标机器相关设置除了基类以外,X86TargetLowering构造函数本身也是一个庞然大物,我们必须要分段来看。V7.0做了不小的改动,改进了代码的结构,修改了一些指令的设置。100X86TargetLowering::X86TargetLowering(constX86TargetMachine&TM,101constX86Subtar
wuhui_gdnt
·
2023-11-23 04:27
LLVM学习笔记
学习
笔记
llvm
编译
Fedora 39 正式发布
FedoraWorkstation39FedoraServer39FedoraIoT39FedoraCloud39FedoraCoreOS“next”streamFedoraWorkstation39搭载GNOME45桌面环境、LibreOffice7.6办公套件、
LLVM
17
云计算运维工程师
·
2023-11-23 02:24
python
SCTF2021 pwn gadget 出题思路+预期非预期解
出题考点栈迁移movrdx时间爆破alarmsub[rcx],esi;libc_exit_finisub+jz拼凑exp出题思路其实来自这个题目,非常规的gadget拼凑,编译环境这个题目的编译环境是o
llvm
-令则
·
2023-11-22 05:35
pwn
题目的整理
安全
RocketMQ源码(26)—DefaultMQPushConsumer事务消息源码【一万字】
不出意外的话,这将是RocketMQ
源码系列
的最后一篇文章,如有其他没分析到的想看的源码,可以给我说。感谢大家看到最后,祝大家学业有成,工作顺利
刘Java
·
2023-11-22 00:57
RocketMQ
源码
java-rocketmq
rocketmq
java
事务消息
分布式事务
LLVM
5.0环境搭建以及对C程序编译运行
介绍
LLVM
(lowlevelvirtualmachine)从本质上来说,是一个开源编译器框架,能够提供程序语言的编译期优化、链接优化、在线编译优化、代码生成。
静水流深ylyang
·
2023-11-21 12:01
【Flink
源码系列
】Flink 源码分析之 Client 端启动流程分析
抛出问题首先来思考一个问题,我们在提交Flink任务的时候,在Flink客户端执行了下面的命令后,Flink客户端做了哪些事情?又是怎么执行我们自己写的代码?相信读完这篇文章你就能找到答案。flink run -d -m yarn-cluster \-Dyarn.application.name=FlinkStreamingNewDemoHome \-Dyarn.application.queue
JasonLee实时计算
·
2023-11-20 23:05
java
hadoop
spring
android
flink
Flink
源码系列
(创建JobMaster并生成ExecutionGraph)-第七期
上一期指路:上一期上一期主要讲了flink内部的rm的创建,Dispatcher的创建与启动,之前也说过在Dispatcher的启动过程中会涉及JobMaster的创建与启动,那么这一期的主题是创建JobMaster并生成ExecutionGraph。承接上一期分析到Dispatcher的onStart函数1.Dispatcher#startRecoveredJobs->Dispatcher#ru
AiryView
·
2023-11-20 23:59
flink源码系列
flink
大数据
big
data
java
源码
iOS底层之KVC
属性的区别成员变量一个类里面所有的变量都是成员变量实例变量实例创建出来的变量,比如Classid不一定,id是特殊的Class属性属性一般会有一个默认的setter+getter方法我们知道苹果早期的编译器是GCC,后来变成了
LLVM
恍然如梦_b700
·
2023-11-20 09:22
Python自学入门知识
41onttys001TQ-WXdeMacBook-Pro:~anonyper$pythonPython2.7.10(default,Jul152017,17:16:57)[GCC4.2.1CompatibleApple
LLVM
9
AnonyPer
·
2023-11-20 06:18
windows下使用springboot3.0 和 使用gra
llVM
虚拟机
一:准备环境:JDK17下载地址:https://www.oracle.com/java/technologies/downloads/Gra
llVM
虚拟机下载地址:https://www.graalvm.org
chenkangck50
·
2023-11-20 01:34
java
1024程序员节
Unicorn反混淆:恢复被O
LLVM
保护的程序(一)
一、目标现在很多程序利用o
llvm
的控制流平坦化来增加逆向分析的难度。
fenfei331
·
2023-11-20 01:01
源码系列
(五)----java枚举类型详解
之所以想要写一篇这样的文章,是因为我目前所做的项目中,实在是使用了太多的枚举类了,Spring与Mybatis的注解大量使用了枚举类,在我们的业务代码中也用来定义一些业务策略。然而我平时对于枚举类只是简单的使用,故打算写一篇这样的文章来总结一下。java的枚举类型有jdk1.5开始正式提供,用来定义一系列常量。1、简单的枚举类例子我们先定义一个Color枚举类型,代码如下:publicenumCo
win1699
·
2023-11-20 00:59
JDK源码
lts安装 rust ubuntu_如何在Linux中安装Rust编程语言
它是由Mozilla开发并由
LLVM
支持的安全和并发语言。它支持零成本抽象,移动语义,保证内存安全,无数据竞争的线程,基于特征的泛型和模式匹配。它还支持类型推断,最小的运行时间以及高效的C绑定。
weixin_39981041
·
2023-11-19 12:25
lts安装
rust
ubuntu
spring
源码系列
---依赖注入
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#doCreateBeanprotectedObjectdoCreateBean(StringbeanName,RootBeanDefinitionmbd,@NullableObject[]args)throwsBeanCreationExcept
性感的大表哥
·
2023-11-19 05:23
Spring
spring
Nacos
源码系列
—服务端那些事儿
前言在上节课中,我们讲解了客户端注册服务的大体流程,客户端在注册服务的时候调用的是NamingService.registerInstance来完成实例的注册,在最后呢我们知道服务注册是通过nacos/v1/ns/instance接口来完成注册的,我们今天来讲解服务端的注册,首先就从这个接口地址开始,来看具体服务端都做了哪些事情服务注册上面是我们从官网中找到的Nacos架构图,从这个图中我们大体可
老马说开发y
·
2023-11-19 04:43
Java技术文
java
开发语言
Windows安装clang-format的方法
在Windows有三种安装方式:下载完整的
LLVM
,在bin目录可以看到clang-format.exe。安装完后,将该bin档目录添加到userPATH中。
写有意思的代码
·
2023-11-17 01:16
工具
windows
clang-format
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他