[flang-dev] (Strawman) Costed plan for LLVM-ification of F18

David Greene via flang-dev flang-dev at lists.llvm.org
Wed Jan 29 13:15:50 PST 2020

Timothy Keith via flang-dev <flang-dev at lists.llvm.org> writes:

>> 1. Eliminate braces from all single-line if statements
> This seems like a really bad idea and would like to see a reason for it.

FWIW this is one of the few things in LLVM's coding standards that I
strongly disagree with, but for whatever reason others strongly support
it.  I just live with it.  I would enthusiastically support an RFC to
llvm-dev to change it.

>> 2. Eliminate all uses of else-after-return
> Doing this blindly is also a bad idea.

I don't think anyone is saying to do anything "blindly."

>> b. std::vector → llvm::SmallVector where appropriate
>> c. std::set → llvm::SmallSet/llvm::StringSet/llvm::DenseSet where appropriate
>> d. std::map → llvm::StringMap/llvm::DenseMap where appropriate
> As long as "where appropriate" means there is tangible benefit to
> changing from a standard type to a non-standard one. Not just change
> for the sake of change.

IME, LLVM's data structures are much faster/less resource intensive than
the standard library's.  That's natural as the standard library is
general-purpose code while LLVM's is tuned for specific use-cases.  In
my work I always use LLVM's data structures unless there's a good reason
not to.  f18 should follow the LLVM convention here.


More information about the flang-dev mailing list