summaryrefslogtreecommitdiffstats
path: root/lldb/scripts/Python
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2019-04-08 07:39:17 +0000
committerCraig Topper <craig.topper@intel.com>2019-04-08 07:39:17 +0000
commit6a6da233b903541e2f660d1821e7de4bd19a3d6b (patch)
tree9f314fe3b8214a80ed8e43d3917c8c7b3b5afc35 /lldb/scripts/Python
parentdc1f4a6764e735fbfc25e49ce2bdfd2f78ae4e57 (diff)
downloadbcm5719-llvm-6a6da233b903541e2f660d1821e7de4bd19a3d6b.tar.gz
bcm5719-llvm-6a6da233b903541e2f660d1821e7de4bd19a3d6b.zip
[X86] Make LowerOperationWrapper more robust. Remove now unnecessary ReplaceAllUsesWith from LowerMSCATTER.
Previously LowerOperationWrapper took the number of results from the original node and counted that many results from the new node. This was intended to drop chain operands from FP_TO_SINT lowering that uses X87 with memory operations to stack temporaries. The final load had an extra chain output that needs to be ignored. Unfortunately, it didn't work with scatter which has 2 result operands, the mask output which is discarded and a chain output. The chain output is the one that is needed but it comes second and it would be dropped by the previous logic here. To workaround this we were doing a ReplaceAllUses in the lowering code so that the generic legalization code wouldn't see any uses to replace since it had been given the wrong result/type. After this change we take the LowerOperation result directly if the original node has one result. This allows us to directly return the chain from scatter or the load data from the FP_TO_SINT case. When the original node has multiple results we'll ensure the returned node has the same number and copy them over. For cases where the original node has multiple results and the new code for some reason has even more results, MERGE_VALUES can be used to pass only the needed results. llvm-svn: 357887
Diffstat (limited to 'lldb/scripts/Python')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud