Skip to content
  • Rafael Espindola's avatar
    Remove some really nasty uses of hasRawTextSupport. · ac4ad25a
    Rafael Espindola authored
    When MC was first added, targets could use hasRawTextSupport to keep features
    working before they were added to the MC interface.
    
    The design goal of MC is to provide an uniform api for printing assembly and
    object files. Short of relaxations and other corner cases, a object file is
    just another representation of the assembly.
    
    It was never the intention that targets would keep doing things like
    
    if (hasRawTextSupport())
      Set flags in one way.
    else
      Set flags in another way.
    
    When they do that they create two code paths and the object file is no longer
    just another representation of the assembly. This also then requires testing
    with llc -filetype=obj, which is extremelly brittle.
    
    This patch removes some of these hacks by replacing them with smaller ones.
    The ARM flag setting is trivial, so I just moved it to the constructor. For
    Mips, the patch adds two temporary hack directives that allow the assembly
    to represent the same things as the object file was already able to.
    
    The hope is that the mips developers will replace the hack directives with
    the same ones that gas uses and drop the -print-hack-directives flag.
    
    I will also try to implement a target streamer interface, so that we can
    move this out of the common code.
    
    In summary, for any new work, two rules of the thumb are
      * Don't use "llc -filetype=obj" in tests.
      * Don't add calls to hasRawTextSupport.
    
    llvm-svn: 192035
    ac4ad25a
Loading