[llvm] r316481 - bpf: fix a bug in trunc-op optimization

Yonghong Song via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 24 14:22:55 PDT 2017


Yes. Previously, I do have this change. Later on, I checked some
website (stackflow) which says, the constructor will assign NULL
to a pointer value so that is why I did not initialize it in
the constructor.
Maybe my understanding is incorrect?

On 10/24/17 2:19 PM, Evgenii Stepanov wrote:
> All stores to curr_func_ are dominated by loads, this can't be right.
> You probably meant to initialize it to nullptr in the constructor?
> 
> On Tue, Oct 24, 2017 at 2:17 PM, Evgenii Stepanov
> <eugeni.stepanov at gmail.com> wrote:
>> Hi,
>>
>> one of your changes broke the msan bot:
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__lab.llvm.org-3A8011_builders_sanitizer-2Dx86-5F64-2Dlinux-2Dbootstrap-2Dmsan_builds_202_steps_check-2Dllvm-2520msan_logs_stdio&d=DwIBaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=DA8e1B5r073vIqRrFz7MRA&m=IkIAE-IfCDp2GWYOR5YHSXgGYE1V30dpyuL_J7-UFWg&s=huyyhqno9qhlXkirQWhS6bHMR6lgp_oWD_K7SZtkVQ4&e=
>>
>> On Tue, Oct 24, 2017 at 11:21 AM, Yonghong Song via llvm-commits
>> <llvm-commits at lists.llvm.org> wrote:
>>> Author: yhs
>>> Date: Tue Oct 24 11:21:10 2017
>>> New Revision: 316481
>>>
>>> URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D316481-26view-3Drev&d=DwIBaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=DA8e1B5r073vIqRrFz7MRA&m=IkIAE-IfCDp2GWYOR5YHSXgGYE1V30dpyuL_J7-UFWg&s=taKxbRkvdYyRFORIGxTNt44Z5yDJeNtIwPYGuGot5zk&e=
>>> Log:
>>> bpf: fix a bug in trunc-op optimization
>>>
>>> Previous implementation for per-function scope
>>> is incorrect and too conservative.
>>>
>>> Signed-off-by: Yonghong Song <yhs at fb.com>
>>>
>>> Modified:
>>>      llvm/trunk/lib/Target/BPF/BPFISelDAGToDAG.cpp
>>>
>>> Modified: llvm/trunk/lib/Target/BPF/BPFISelDAGToDAG.cpp
>>> URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Target_BPF_BPFISelDAGToDAG.cpp-3Frev-3D316481-26r1-3D316480-26r2-3D316481-26view-3Ddiff&d=DwIBaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=DA8e1B5r073vIqRrFz7MRA&m=IkIAE-IfCDp2GWYOR5YHSXgGYE1V30dpyuL_J7-UFWg&s=9ml3oJPI84s7znc7K8tKbmG-kvwiOIJknrq06ZknAzU&e=
>>> ==============================================================================
>>> --- llvm/trunk/lib/Target/BPF/BPFISelDAGToDAG.cpp (original)
>>> +++ llvm/trunk/lib/Target/BPF/BPFISelDAGToDAG.cpp Tue Oct 24 11:21:10 2017
>>> @@ -85,6 +85,8 @@ private:
>>>     std::map<const void *, val_vec_type> cs_vals_;
>>>     // Mapping from vreg to load memory opcode
>>>     std::map<unsigned, unsigned> load_to_vreg_;
>>> +  // Current function
>>> +  const Function *curr_func_;
>>>   };
>>>   } // namespace
>>>
>>> @@ -332,7 +334,12 @@ void BPFDAGToDAGISel::PreprocessISelDAG(
>>>
>>>     // clear the load_to_vreg_ map so that we have a clean start
>>>     // for this function.
>>> -  load_to_vreg_.clear();
>>> +  if (!curr_func_) {
>>> +    curr_func_ = FuncInfo->Fn;
>>> +  } else if (curr_func_ != FuncInfo->Fn) {
>>> +    load_to_vreg_.clear();
>>> +    curr_func_ = FuncInfo->Fn;
>>> +  }
>>>
>>>     for (SelectionDAG::allnodes_iterator I = CurDAG->allnodes_begin(),
>>>                                          E = CurDAG->allnodes_end();
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at lists.llvm.org
>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Dcommits&d=DwIBaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=DA8e1B5r073vIqRrFz7MRA&m=IkIAE-IfCDp2GWYOR5YHSXgGYE1V30dpyuL_J7-UFWg&s=ne_gxt12LtqOdekNE55Pyhfyj8Wst9bRmyUC-plnG3w&e=


More information about the llvm-commits mailing list