[lld] r223527 - [mach-o] Pass vectors by reference and name empty vector.

Nick Kledzik kledzik at apple.com
Fri Dec 5 15:10:38 PST 2014


On Dec 5, 2014, at 2:52 PM, David Blaikie <dblaikie at gmail.com> wrote:

> 
> 
> On Fri, Dec 5, 2014 at 2:03 PM, Nick Kledzik <kledzik at apple.com> wrote:
> Author: kledzik
> Date: Fri Dec  5 16:03:20 2014
> New Revision: 223527
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=223527&view=rev
> Log:
> [mach-o] Pass vectors by reference and name empty vector.
> 
> Modified:
>     lld/trunk/lib/ReaderWriter/MachO/CompactUnwindPass.cpp
> 
> Modified: lld/trunk/lib/ReaderWriter/MachO/CompactUnwindPass.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/CompactUnwindPass.cpp?rev=223527&r1=223526&r2=223527&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/MachO/CompactUnwindPass.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/MachO/CompactUnwindPass.cpp Fri Dec  5 16:03:20 2014
> @@ -67,9 +67,9 @@ struct UnwindInfoPage {
>  class UnwindInfoAtom : public SimpleDefinedAtom {
>  public:
>    UnwindInfoAtom(ArchHandler &archHandler, const File &file, bool isBig,
> -                 std::vector<uint32_t> commonEncodings,
> -                 std::vector<const Atom *> personalities,
> -                 std::vector<UnwindInfoPage> pages, uint32_t numLSDAs)
> +                 std::vector<const Atom *> &personalities,
> +                 std::vector<uint32_t> &commonEncodings,
> +                 std::vector<UnwindInfoPage> &pages, uint32_t numLSDAs)
> 
> Should these be const ref? Does the caller already use the side-effects, not expect side effects, or not care about the side effects of the ctors possible mutations of these vectors?
The call to this constructor is the last thing done in this Pass, so the caller does nothing with the vectors afterwards.  They can probably be const, but this pass needs lots of other work.  I’ll fix the const-ness when I do other improvements.

-Nick


>  
>        : SimpleDefinedAtom(file), _archHandler(archHandler),
>          _commonEncodingsOffset(7 * sizeof(uint32_t)),
>          _personalityArrayOffset(_commonEncodingsOffset +
> @@ -302,6 +302,9 @@ private:
>      // also probably be sorted by frequency.
>      assert(personalities.size() <= 4);
> 
> +    // TODO: Find commmon encodings for use by compressed pages.
> +    std::vector<uint32_t> commonEncodings;
> +
>      // Now sort the entries by final address and fixup the compact encoding to
>      // its final form (i.e. set personality function bits & create DWARF
>      // references where needed).
> @@ -338,8 +341,8 @@ private:
>      } while (pageStart < unwindInfos.size());
> 
>      UnwindInfoAtom *unwind = new (_file.allocator())
> -        UnwindInfoAtom(_archHandler, _file, _isBig, std::vector<uint32_t>(),
> -                       personalities, pages, numLSDAs);
> +        UnwindInfoAtom(_archHandler, _file, _isBig, personalities,
> +                       commonEncodings, pages, numLSDAs);
>      mergedFile->addAtom(*unwind);
> 
>      // Finally, remove all __compact_unwind atoms now that we've processed them.
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141205/cc1ff31f/attachment.html>


More information about the llvm-commits mailing list