11 Commits

Author SHA1 Message Date
Youngsuk Kim
a51196ec6e [llvm-reduce] Remove unreachable branch (NFC)
Remove stale branch which is unreachable with opaque pointers.
2023-11-30 10:30:48 -06:00
Nikita Popov
35bdcb03d9 [llvm] Remove uses of isOpaqueOrPointeeTypeEquals() (NFC) 2023-07-18 11:41:46 +02:00
Matt Arsenault
333ffafb45 llvm-reduce: Trim includes and avoid using namespace in a header 2023-01-19 21:48:56 -04:00
Matt Arsenault
23cc36e476 llvm-reduce: Use consistent ReductionFunc types
Some of these were relying on ReducerWorkItem's operator Module&.
2023-01-19 21:35:26 -04:00
Kazu Hirata
b4482f7ca0 [tools] Use std::nullopt instead of None (NFC)
This patch mechanically replaces None with std::nullopt where the
compiler would warn if None were deprecated.  The intent is to reduce
the amount of manual work required in migrating from Optional to
std::optional.

This is part of an effort to migrate from llvm::Optional to
std::optional:

https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
2022-12-02 21:11:40 -08:00
Matt Arsenault
4638ba7b45 llvm-reduce: Try to turn calls into something else
Try to turn calls that look like operators into known
intrinsics. Also try to turn calls that look like a load or
a store into a load or store.
2022-11-07 21:04:21 -08:00
Matt Arsenault
3e6f7ab867 llvm-reduce: Fix opcode reduction leaving behind dead instructions
ce3c3cb2912425bb4367bfbe9a4c68a6d6f0a04a broke this by
speculatively making transforms before checking shouldKeep.
Originally I tried to roll back changes to the IR, but it's probably
best to not touch it before querying.
2022-10-23 15:37:03 -07:00
Arthur Eubanks
ce3c3cb291 [llvm-reduce] Check if reduction fails/is redundant before invoking oracle
So we don't over count the number of chunks and do unnecessary work reducing more chunks than exist.

This lowers some random reduction I tested with locally from 250s to 232s.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D136127
2022-10-18 08:43:56 -07:00
Arthur Eubanks
2592ccdea7 [llvm-reduce] Unify pass logging
We randomly use outs() or errs(), which makes test logs confusing.
We also randomly add/don't add a line afterward.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D136130
2022-10-18 08:42:37 -07:00
Kazu Hirata
988025adc7 [llvm-reduce] Fix a warning
This patch fixes:

  llvm/tools/llvm-reduce/deltas/ReduceOpcodes.cpp:96:21: warning:
  unused variable ‘Op’ [-Wunused-variable]
2022-10-15 12:28:11 -07:00
Matt Arsenault
573a5de755 llvm-reduce: Add opcode reduction pass
Try some dumb strength reductions to "simpler" opcodes.
Make some opcode substitutions I typically try to get smaller
MIR out of codegen. This is a bit target specific and I have a
lot of increasingly target specific modifications I try
during manual reduction.
2022-10-12 17:34:03 -07:00