Alessandro Di Federico
6e0fc63b77
Reschedule AttachDebugInfo after InlineHelpers
2023-04-13 18:11:48 +02:00
Alessandro Di Federico
624cf2f160
AVI: add GVN
...
We should be able to drop this soon.
2023-04-13 18:11:48 +02:00
Alessandro Di Federico
b5607efce0
struct_initializer: mark as pure
2023-04-13 18:11:48 +02:00
Alessandro Di Federico
98b92a5b01
Prevent merging calls to isolated functions
...
SimplifyCFG with instruction sinking enabled sometimes can merge two
call sites that are identical at LLVM IR level, but originally come from
two distinct addresses in the original binary.
The nomerge attribute prevents this type of problematic deduplication.
2023-04-13 18:11:48 +02:00
Alessandro Di Federico
79d9011b95
InlineHelpers: drop !dbg post-inlining
2023-04-13 18:11:48 +02:00
Alessandro Di Federico
401f731eda
AttachDebugInfo: color instructions with a visit
...
We used to only color instructions in the same BasicBlock as the call to
`newpc`. However, an instruction in the original binary can span
multiple BasicBlocks.
2023-04-13 18:11:48 +02:00
Alessandro Di Federico
92b9ba5571
Import findPhiTreeLeaves
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
dc7f731bef
Mark build_PlainMetaAddress as const
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
995d44cf73
Implement Location::{parent,back}
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
52ee85f55f
Implement efa::BasicBlock::contains
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
0c991af685
AVI: after function_call, jump to anypc
...
We used to jump to the dispatcher, however we only sink to an
unreachable `anypc`. We were threfore significantly complicating the CFG
in case of indirect function calls.
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
f313a72453
DropHelperCalls: pass in loaded CSVs, not pointers
...
We used to pass pointers to helper functions, but we just need to pass
the loaded value: no need to leak the pointer to the CSV.
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
19d59ffd73
Implement Segment::dump
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
6564fc0568
Minor changes
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
cdf1654f36
CSAA: do not use ptr, use pointee type
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
bc4833078c
Fix InstCombine constructor invocation
...
In LLVM 12 the `InstCombine` constructor used to take a `bool`, in LLVM
16 it takes an integer. Implicit promotion was hiding this fact.
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
1fa34fff9e
revng opt: force legacy pass manager
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
e73543e430
AsmCall: add parameter attribute for element type
...
Fix calls to inline assembly
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
a0c0cd9468
extractFromConstantStringPtr: no stripPointerCasts
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
f7f47ceac6
VariableManager: drop autodetection of ${ARCH}CPU
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
71f754f811
PDBImporter: declare our own FilterOptions
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
de90eea243
Adopt get{Max,}PointerSizeInBits
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
53715af613
Adopt {PassBuilder::,}OptimizationLevel::O2
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
5be2c94a1b
Fix literal signedness in comparisons
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
0570db6873
Drop dead llvm::initialize* invocations
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
daafc6a1e7
AVI: handle SCEV's scSequentialUMinExpr
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
348ccec09b
Adopt new llvm::MCContext constructor
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
171ba353e5
Adopt llvm/{Support,MC}/TargetRegistry.h
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
bcd374038c
s/zextOrSelf/zext/g
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
6c115da619
Update pass names
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
4182a94346
Adopt MemoryEffects::none
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
ae871f5062
Adopt setOnlyReadsMemory
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
43fd690ea8
InaccessibleMemOnly: adopt MemoryEffects
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
e131817334
Drop usage of Type::getPointerElementType
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
a0fa150576
Drop usages of LoadInst::getPointerOperandType
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
7a08d51816
Drop usages of PointerType::getElementType
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
f777ccc4d3
Replace llvm::sys::fs::F_None with OF_None
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
26765f3d84
Drop usages of getBasicBlockList
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
a99d54457b
Drop usages of getInstList
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
aa6a60c5b8
Adopt new InlineFunction prototype
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
449e95021a
Replace CallBase::getNumArgOperands with arg_size
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
06f9bca598
Adopt {add,remove}FnAttribute
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
394111ed40
Add missing includes
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
d2caa1fad0
Make CreateLoad usages opaque pointers-compatible
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
dbcdad0a4d
Switch from llvm::Optional to std::optional
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
389342411a
Drop makeArrayRef
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
1454ba6ebb
Link to the LLVMTargetParser library
2023-04-08 08:42:23 +02:00
Alessandro Di Federico
5ed9432a68
Fix ambiguous template function
...
Bumping LLVM version turned these into compiler errors.
2023-04-08 08:42:23 +02:00
Alessandro Di Federico
564519b6f9
Explicitly add -L for LLVM libraries path
2023-04-08 08:42:23 +02:00
Alessandro Di Federico
e3f9519ffc
Get rid of std::iterator
2023-04-08 08:42:23 +02:00