Skip to content

Optimizing scheduler. Combinatorial instruction scheduling project.

License

Notifications You must be signed in to change notification settings

Quincunx271/OptSched

This branch is 14 commits behind CSUS-LLVM/OptSched:master.

Folders and files

NameName
Last commit message
Last commit date
May 9, 2021
May 19, 2021
May 3, 2020
Oct 15, 2021
Oct 27, 2021
Oct 27, 2021
May 27, 2020
Mar 4, 2021
Oct 27, 2021
Apr 29, 2021
May 3, 2020
May 3, 2020
Apr 13, 2021
Sep 15, 2020
Jan 26, 2021
May 9, 2021
May 15, 2021
Nov 28, 2018
May 3, 2020

Repository files navigation

CSUS

OptSched - Optimizing Scheduler

Combinatorial instruction scheduling research project at CSU Sacramento.

This plugin for the LLVM compiler is an optional machine scheduler. We implement a branch and bound instruction scheduling algorithm.

Requirements

  • Ubuntu 16.04 (recommended), or MacOS 10.14
  • CMake 3.4.3 or later
  • LLVM 6.0 or later

Building

See BUILD.md for build instructions.

The OptSched plugin can be found in “llvm/lib” after building.

Configuration files

OptSched reads from configuration files at runtime to initialize the scheduler. There are templates in the example directory. The default search location for these files is ~/.optsched-cfg. You can optionally specify the path to this directory or any of the configuration files individually with command-line options.

Usage Examples

clang++ -O3 -fplugin=<path/to/OptSched.so> -mllvm -misched=optsched -mllvm -optsched-cfg=<path/to/optsched-cfg> <example.cpp>

llc -load <path/to/OptSched.so> -misched=optsched -optsched-cfg=<path/to/optsched-cfg> <example.ll>

Command-Line Options

When using Clang, pass options to LLVM with -mllvm.

CL Opt Description
-enable-misched Enable the machine scheduling pass in LLVM (Targets can override this option).
-misched=optsched Select the optimizing scheduler.
-debug-only=optsched Print debug information from the scheduler.
-optsched-cfg=<string> Path to the directory containing configuration files for opt-sched.
-optsched-cfg-hotfuncs=<string> Path to the list of hot functions to schedule using opt-sched.
-optsched-cfg-machine-model=<string> Path to the machine model specification file for opt-sched.
-optsched-cfg-sched=<string> Path to the scheduler options configuration file for opt-sched.

About

Optimizing scheduler. Combinatorial instruction scheduling project.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 76.9%
  • Python 20.0%
  • CMake 1.8%
  • Shell 1.2%
  • C 0.1%