일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- TLS
- Linux packer
- LLVM Obfuscator
- linux thread
- Injection
- custom packer
- so inject
- tracerpid
- on stack replacement
- uftrace
- LLVM 난독화
- 난독화
- OSR
- v8 tracing
- on-stack replacement
- Android
- pinpoint
- apm
- tracing
- linux debugging
- pthread
- Obfuscator
- initial-exec
- 안티디버깅
- v8 optimizing
- LLVM
- thread local storage
- android inject
- Linux custom packer
- anti debugging
- Today
- Total
목록분류 전체보기 (139)
Why should I know this?
https://github.com/llvm/llvm-project/commit/06408451bf12d4baed1fb1312d8af6e6bbb6a797 Revert "[SCCP] Use SimplifyBinOp for non-integer constant/expressions… · llvm/llvm-project@0640845… & overdef." This reverts commit 1a02aaeaa4f8675490da38ee8cb0d4a6d39815dd. Crashes on the following test case: $ cat crash.ll source_filename = "__compute_module" target datal...github.com https://github.com/llvm/l..
LLVM 을 debug 로 빌드하면 링킹 때 위처럼 1core 만 돌렸을 때 최대 15기가 까지 메모리를 잡아먹음.-j 을 지정할 때 주의해야 함. 혹자는 swap을 늘리면 되는게 아니냐고 물을텐데, 링킹 과정에서 트리서치 과정이 굉장히 빈번하고 많이 일어남. 즉, swap하면서 코어수를 늘리느니 swap없이 코어를 줄이는게 현명. -- Performing Test HAVE_POSIX_REGEX-- Performing Test HAVE_POSIX_REGEX -- success-- Performing Test HAVE_STEADY_CLOCK-- Performing Test HAVE_STEADY_CLOCK-- Performing Test HAVE_STEADY_CLOCK -- success-- Configu..
https://discourse.llvm.org/t/do-we-need-to-support-for-selectinst-to-domcache/78662Select 관련 최적화 패치 개발을 진행하다가 Select Cond가 KnownBits 추산에 활용되지 않아서 올린 질문 글. 답변 내용에 따라 한정적으로 Select Cond 를 KnownBits 추산에 활용한 패치https://github.com/llvm/llvm-project/pull/91762 [InstCombine] Try optimizing with knownbits which determined from Cond by ParkHanbum · Pull Request #91762 · llvm/llvm-projectThis PR was submitt..
https://developer.arm.com/documentation/ddi0595/2020-12/AArch64-Instructions/DC-ZVA--Data-Cache-Zero-by-VA Documentation – Arm Developer developer.arm.com DC ZVA, Data Cache Zero by VADC ZVA는 지정된 가상 주소를 캐쉬에 채우지 않는 동작 수행을 지정하는 특수 Instruction이다."DC ZVA"로 구글에 검색하면 숱한 관련 내용이 나오니 더 기술하하는 것은 생략하고 다음 일부를 발췌해왔다."DC ZVA"는 효과적이며 메모리 시스템을 쓰기 스트리밍 모드로 전환하여 멤셋과 같은 시나리오에서 L1 캐시를 라인 채우지 않도록 합니다. 작년에 .NET은 프레임 ..
https://archive.fosdem.org/2019/schedule/event/llvm_tablegen/attachments/slides/3304/export/events/attachments/llvm_tablegen/slides/3304/tablegen.pdf
Store IR 원형store [volatile] , ptr [, align ][, !nontemporal !][, !invariant.group !]; yields voidstore atomic [volatile] , ptr [syncscope("")] , align [, !invariant.group !] ; yields void! = !{ i32 1 }! = !{}STRroX, STRroWSTR(register) 3130292827262524232221201918171615141312111098765432101x111000001RmoptionS10RnRtsize opc STRroX, STRroW 예시str x0, [x9, x8, lsl #3]storeopTy regtype:$..
PR한 패치가 자꾸 윈도우에서 문제가 발생하는 이유로,윈도우에서 한번 빌드 및 테스트를 해보기로 결정했다. 1. Visual Studio 2022 설치https://visualstudio.microsoft.com/ko/downloads/ Visual Studio Tools 다운로드 - Windows, Mac, Linux용 무료 설치Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 Visual Studio Professional 또는 Enterprise Edition을 사용해 보세요.visualstudio.microsoft.com 2. git 설치 (혹은 visual studio 2022 설치 할 때 설치됨)https://www.git-scm.co..
SOUPER는 Super Optimization를 약자로 한 프로젝트 입니다. 이런 이름 때문에 오해할 수 있는데, Super Optimization이라고 해서 코드를 "슈퍼향상 시키는 최적화"가 아니고, "자동화 된 최적화" 가 목적입니다. 6^^ Souper 에 대해 다루기 전에 먼저 자동화 된 최적화를 구현하기 위해서는 최적화를 자동으로 만들 수 있어야 겠죠. 그러자면 자동으로 생성된 "최적화에 대한 검증" 방식이 필요합니다. SOUPER는 CEGIS 방식을 취하는데, 이를 우리나라 말로 옮기면 "반증 기반 유도 합성" 이 됩니다. 발견된 최적화 방식에 대해서, "반증 했을 때 만족하는(SAT) 경우가 있는가?" 를 확인하는 방식입니다. 예를 들어 봅시다. 위처럼, 아주 형편없는 예제 코드가 ..
https://github.com/llvm/llvm-project/pull/91762 (기억을 보존하기 위한) 패치 내용 정리.패치 동기LLVM에서는 AND/OR/XOR 연산을 BitwiseLogic 이라고 부른다. 해당 로직들은 특정 상황에서 최적화 될 수 있다.다음의 경우를 보자.define i32 @src_no_trans_select_or_eq0_and_or(i32 %x, i32 %y) {; CHECK-LABEL: @src_no_trans_select_or_eq0_and_or(; CHECK-NEXT: [[OR:%.*]] = or i32 [[X:%.*]], [[Y:%.*]]; CHECK-NEXT: ret i32 [[OR]]; %or = or i32 %x, %y %or0 = icmp eq..
https://die4taoam.tistory.com/147 computeKnownBits & KnownBits 관련 예제computeKnownBits https://llvm.org/doxygen/ValueTracking_8cpp.html#a903bd19e9d31beff55b22fe86111639e Determine which bits of V are known to be either zero or one and return them. void computeKnownBits (const Value *V, KnownBits &Known, const DataLayout &DL,die4taoam.tistory.com computeKnownBitsㄴ computeKnownBitsFromContext ㄴ ..