Skip to content
Snippets Groups Projects
  1. Jan 03, 2024
  2. Jan 16, 2023
  3. Jan 03, 2022
  4. May 05, 2021
    • Tom Tromey's avatar
      libcc1: avoid extra string copies · 96deddca
      Tom Tromey authored
      PR c/94669 points out that a couple of spots in libcc1 take a
      std::string where a reference would do.  This changes these spots to
      take a const char *, to reduce the number of copies.
      
      libcc1
      
      	PR c/94669
      	* compiler.hh (compiler_driver_filename): Take const char *.
      	(compiler_triplet_regexp): Likewise.
      96deddca
    • Tom Tromey's avatar
      libcc1: unify compiler handling · 1d9c9726
      Tom Tromey authored
      Both libcc1 plugins have nearly identical copies of code to find the
      underlying compiler.  This seemed wasteful to me, so this patch
      unifies the copies.
      
      Two minor API changes were needed.
      
      First, the old code used a back-link from the compiler object to the
      plugin object to check the 'verbose' setting.  This patch adds a
      'verbose' setting directly to the compiler object instead.
      
      Second, the 'find' method implicitly knew which compiler base name
      ("gcc" or "g++") to use.  This patch makes this a parameter that is
      passed in by the plugin.
      
      libcc1
      
      	* libcp1.cc (compiler, compiler_triplet_regexp)
      	(compiler_driver_filename): Remove.
      	(libcp1::libcp1): Update.
      	(make_regexp, libcp1::compiler::find)
      	(libcp1::compiler_triplet_regexp::find)
      	(libcp1::compiler_driver_filename::find): Remove.
      	(libcp1_set_verbose, libcp1_set_arguments)
      	(libcp1_set_triplet_regexp, libcp1_set_driver_filename): Update.
      	* libcc1.cc (compiler, compiler_triplet_regexp)
      	(compiler_driver_filename): Remove.
      	(libcc1::libcc1): Update.
      	(make_regexp, libcc1::compiler::find)
      	(libcc1::compiler_triplet_regexp::find)
      	(libcc1::compiler_driver_filename::find): Remove.
      	(libcc1_set_verbose, libcc1_set_arguments)
      	(libcc1_set_triplet_regexp, libcc1_set_driver_filename): Update.
      	* compiler.cc: New file.
      	* compiler.hh: New file.
      	* Makefile.in: Rebuild.
      	* Makefile.am (libcc1_la_SOURCES): Add compiler.hh, compiler.cc.
      
      1d9c9726
Loading