1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/unittests/Analysis
Bjorn Pettersson 29ffba4b56 Update @llvm.powi to handle different int sizes for the exponent
This can be seen as a follow up to commit 0ee439b705e82a4fe20e2,
that changed the second argument of __powidf2, __powisf2 and
__powitf2 in compiler-rt from si_int to int. That was to align with
how those runtimes are defined in libgcc.
One thing that seem to have been missing in that patch was to make
sure that the rest of LLVM also handle that the argument now depends
on the size of int (not using the si_int machine mode for 32-bit).
When using __builtin_powi for a target with 16-bit int clang crashed.
And when emitting libcalls to those rtlib functions, typically when
lowering @llvm.powi), the backend would always prepare the exponent
argument as an i32 which caused miscompiles when the rtlib was
compiled with 16-bit int.

The solution used here is to use an overloaded type for the second
argument in @llvm.powi. This way clang can use the "correct" type
when lowering __builtin_powi, and then later when emitting the libcall
it is assumed that the type used in @llvm.powi matches the rtlib
function.

One thing that needed some extra attention was that when vectorizing
calls several passes did not support that several arguments could
be overloaded in the intrinsics. This patch allows overload of a
scalar operand by adding hasVectorInstrinsicOverloadedScalarOpd, with
an entry for powi.

Differential Revision: https://reviews.llvm.org/D99439
2021-06-17 09:38:28 +02:00
..
Inputs/ir2native_x86_64_model Reapply "[llvm] Native size estimator for training -Oz inliner" 2020-07-13 16:26:26 -07:00
AliasAnalysisTest.cpp [AA][NFC] Convert AliasResult to class containing offset for PartialAlias case. 2021-04-09 13:26:09 +03:00
AliasSetTrackerTest.cpp [NFC] Reduce include files dependency. 2020-12-03 18:25:05 +03:00
AssumeBundleQueriesTest.cpp Internalize some cl::opt global variables or move them under namespace llvm 2021-05-07 11:15:43 -07:00
BasicAliasAnalysisTest.cpp [NFC] Reduce include files dependency. 2020-12-03 18:25:05 +03:00
BlockFrequencyInfoTest.cpp Switch from llvm::is_trivially_copyable to std::is_trivially_copyable 2020-12-02 22:02:48 -08:00
BranchProbabilityInfoTest.cpp
CallGraphTest.cpp
CaptureTrackingTest.cpp [CaptureTrackingTest] Add missing override marker (NFC) 2020-11-07 11:44:02 +01:00
CFGTest.cpp
CGSCCPassManagerTest.cpp Revert "[NPM] Do not run function simplification pipeline unnecessarily" 2021-05-21 16:38:02 -07:00
CMakeLists.txt [IRSim] Adding IR Instruction Mapper 2020-09-17 14:06:16 -05:00
ConstraintSystemTest.cpp [ConstraintSolver] Add isConditionImplied helper. 2020-09-15 13:50:11 +01:00
DDGTest.cpp [DDG] Fix duplicate edge removal during pi-block formation 2021-01-07 10:31:11 -05:00
DivergenceAnalysisTest.cpp [NewPM] Introduce (GPU)DivergenceAnalysis in the new pass manager 2021-02-16 10:26:45 +05:30
DomTreeUpdaterTest.cpp
FunctionPropertiesAnalysisTest.cpp Add new function properties to FunctionPropertiesAnalysis 2020-07-23 12:46:47 -07:00
GlobalsModRefTest.cpp [NFC] Reduce include files dependency. 2020-12-03 18:25:05 +03:00
IRSimilarityIdentifierTest.cpp [IRSim] Letting call instructions be legal for similarity identification. 2020-12-31 20:52:45 -06:00
IVDescriptorsTest.cpp [Analysis][LoopVectorize] rename "Unsafe" variables/methods; NFC 2021-03-04 10:40:26 -05:00
LazyCallGraphTest.cpp [CGSCC][Coroutine][NewPM] Properly support function splitting/outlining 2021-01-06 11:19:15 -08:00
LoadsTest.cpp [Loads] Add canReplacePointersIfEqual helper. 2020-09-01 20:57:41 +01:00
LoopInfoTest.cpp [unittest] Fix -Wunused-variable after D94717 2021-05-07 11:42:16 -07:00
LoopNestTest.cpp LoopAnalysisManager.h - reduce includes to forward declarations. NFC. 2020-06-06 14:06:46 +01:00
MemoryBuiltinsTest.cpp
MemorySSATest.cpp [AA][NFC] Convert AliasResult to class containing offset for PartialAlias case. 2021-04-09 13:26:09 +03:00
PhiValuesTest.cpp
ProfileSummaryInfoTest.cpp Revert "Use uint64_t for branch weights instead of uint32_t" 2020-10-31 00:25:32 -07:00
ScalarEvolutionTest.cpp [SCEV] Keep common NUW flags when inlining Add operands. 2021-06-09 17:13:21 +01:00
SparsePropagation.cpp
TargetLibraryInfoTest.cpp [Analysis] Support AIX vec_malloc routines 2021-01-22 16:03:01 -05:00
TBAATest.cpp
TFUtilsTest.cpp [NFC][TFUtils] Extract out the output spec loader 2020-11-18 20:03:20 -08:00
UnrollAnalyzerTest.cpp [unroll] Use value domain for symbolic execution based cost model 2021-05-26 08:41:25 -07:00
ValueLatticeTest.cpp
ValueTrackingTest.cpp Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02:00
VectorFunctionABITest.cpp [Analysis] Change VFABI::mangleTLIVectorName to use ElementCount 2021-02-12 09:38:12 +00:00
VectorUtilsTest.cpp Revert "Revert "[NFC][llvm] Make the contructors of ElementCount private."" 2020-08-19 17:26:36 +00:00