llvm-6502/lib
Hal Finkel 8def8d9263 Fix BasicTTI::getCmpSelInstrCost to deal with illegal vector types
The default implementation of getCmpSelInstrCost, which provides the cost of
icmp/fcmp/select instructions, did not deal sensibly with illegal vector types
that were scalarized. We'd ask for the legalization cost of the vector type,
which would return something like (4, f64) given an input of <4 x double>, and
we'd then check the TLI status of the ISD opcode on that scalar type. This would
result in querying (ISD::VSELECT, f64), for example. Amusingly enough,
ISD::VSELECT on scalar types is marked as Legal by default (as with most other
operations), and most backends never change this because VSELECT is never
generated on scalars. However, seeing the resulting operation as Legal, we'd
neglect to add the scalarization cost before returning. The result is that we'd
grossly under-estimate the cost of cmps/selects on illegal vector types.

Now, if type legalization clearly results in scalarization, we skip the early
return and add the scalarization cost.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217859 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-16 04:35:50 +00:00
..
Analysis InstSimplify: Simplify trivial and/or of icmps 2014-09-15 08:15:28 +00:00
AsmParser Make CallingConv::ID an alias of "unsigned". 2014-09-10 18:00:17 +00:00
Bitcode Use IntrusiveRefCntPtr to manage the lifetime of BitCodeAbbrevs. 2014-09-15 15:44:14 +00:00
CodeGen Fix BasicTTI::getCmpSelInstrCost to deal with illegal vector types 2014-09-16 04:35:50 +00:00
DebugInfo Fix a non-virtual destructor warning introduced in r217747. 2014-09-15 10:38:13 +00:00
ExecutionEngine Add return that was lost somehow in my last commit. 2014-09-15 19:25:55 +00:00
IR Use dyn_cast<> instead of isa<> and cast<> 2014-09-15 17:56:51 +00:00
IRReader
LineEditor
Linker Merge alignment of common GlobalValue. 2014-09-09 17:48:18 +00:00
LTO Add doInitialization/doFinalization to DataLayoutPass. 2014-09-10 21:27:43 +00:00
MC Fix the build for MSVC, it doesn't support extended sizeof 2014-09-15 20:28:38 +00:00
Object [llvm-objdump] for mach-o add -bind, -lazy-bind, and -weak-bind options 2014-09-16 01:41:51 +00:00
Option Add an overload of getLastArgNoClaim taking two OptSpecifiers. 2014-09-12 19:42:53 +00:00
ProfileData llvm-profdata: Avoid undefined behaviour when reading raw profiles 2014-09-12 21:22:55 +00:00
Support Fix memory leak in error paths in YAMLTraits by using unique_ptr 2014-09-15 18:39:24 +00:00
TableGen
Target [x86] Remove a FIXME that doesn't make any sense. Only the lanes feeding 2014-09-16 02:16:42 +00:00
Transforms Remove dead code in SimplifyCFG 2014-09-15 20:48:13 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile