Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
B
benchmark
  • Project
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Chen Yisong
  • benchmark
  • Repository

Switch branch/tag
  • benchmark
  • test
  • donotoptimize_assembly_test.cc
Find file
BlameHistoryPermalink
  • Eric's avatar
    Add tests to verify assembler output -- Fix DoNotOptimize. (#530) · 7b03df7f
    Eric authored Mar 23, 2018
    * Add tests to verify assembler output -- Fix DoNotOptimize.
    
    For things like `DoNotOptimize`, `ClobberMemory`, and even `KeepRunning()`,
    it is important exactly what assembly they generate. However, we currently
    have no way to test this. Instead it must be manually validated every
    time a change occurs -- including a change in compiler version.
    
    This patch attempts to introduce a way to test the assembled output automatically.
    It's mirrors how LLVM verifies compiler output, and it uses LLVM FileCheck to run
    the tests in a similar way.
    
    The tests function by generating the assembly for a test in CMake, and then
    using FileCheck to verify the // CHECK lines in the source file are found
    in the generated assembly.
    
    Currently, the tests only run on 64-bit x86 systems under GCC and Clang,
    and when FileCheck is found on the system.
    
    Additionally, this patch tries to improve the code gen from DoNotOptimize.
    This should probably be a separate change, but I needed something to test.
    
    * Disable assembly tests on Bazel for now
    
    * Link FIXME to github issue
    
    * Fix Tests on OS X
    
    * fix strip_asm.py to work on both Linux and OS X like targets
    7b03df7f
donotoptimize_assembly_test.cc 4.21 KB
EditWeb IDE
×

Replace donotoptimize_assembly_test.cc

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.