Go to the documentation of this file.
15 #ifndef LLVM_MCA_PIPELINE_H
16 #define LLVM_MCA_PIPELINE_H
24 class HWEventListener;
63 std::set<HWEventListener *> Listeners;
67 bool hasWorkToProcess();
68 void notifyCycleBegin();
69 void notifyCycleEnd();
72 Pipeline() : CurrentState(State::Created), Cycles(0) {}
81 bool isPaused()
const {
return CurrentState == State::Paused; }
86 #endif // LLVM_MCA_PIPELINE_H
This is an optimization pass for GlobalISel generic memory operations.
This currently compiles esp xmm0 movsd esp eax eax esp ret We should use not the dag combiner This is because dagcombine2 needs to be able to see through the X86ISD::Wrapper which DAGCombine can t really do The code for turning x load into a single vector load is target independent and should be moved to the dag combiner The code for turning x load into a vector load can only handle a direct load from a global or a direct load from the stack It should be generalized to handle any load from P
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
bool isPaused() const
Returns whether the pipeline is currently paused.
Tagged union holding either a T or a Error.
void appendStage(std::unique_ptr< Stage > S)
A pipeline for a specific subtarget.
Expected< unsigned > run()
Returns the total number of simulated cycles.
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
Lightweight error class with error context and mandatory checking.
void addEventListener(HWEventListener *Listener)