Git Product home page Git Product logo

Comments (3)

xiangzhai avatar xiangzhai commented on September 26, 2024

Hi Ali,

Thanks for your outstanding work about ScaffCC!

@epiqc I updated unit tests, because module was occupied by C++17 modules TS keywords since Clang release_40 so I renamed module to qmodule by https://github.com/ScaffCC/scaff-clang/commit/8dafe79d124b042de9887d2d5c483b6c4315424a and https://github.com/ScaffCC/scaff-llvm/commit/21acb7c3844f3996b2e34fe334f1e7ba6e1428d9

Yes, it might effect, for example: if (callee->getName().str() == "llvm.X") but will not effect if (callee->getName().startswith("llvm.X")) so I need to find the root cause why changed from llvm.X to llvm.X.i16, DIFF between LLVM release_31 and svn trunk, it might because:

LLVM open source projects are still keeping evolution for better optimization and performance, for example: the original ScaffCC based on LLVM release_31 will use up classical computer's resource during O1 optimizations for transforming Shors algorithms, it is LLVM PASS release_31 performance issue, not Scaffold's, fortunately LLVM svn trunk branch is better than release_31, but CPU still boiled during Dead Argument Elimination, also it is LLVM Deadargelim PASS issue, so it needs to migrate Scaffold PASS to NewLLVM for better optimization and performance, and contributed to LLVM :)

Regards,
Leslie Zhai - a LLVM developer https://reviews.llvm.org/p/xiangzhai/

from scaffcc.

ah744 avatar ah744 commented on September 26, 2024

The cause of this change was the introduction of the ancilla bit "abit" as a separate data type than the qubit. Separating the data types was done for optimization and resource counting purposes, where it would facilitate easier ancilla resource usage during applications, as well as enable easier ancilla management which is being used now in the development of automated ancilla qubit reclaiming procedures.

When the separate types were introduced, the primitive QASM gates defined as LLVM intrinsics needed to be able to accept both qubit types and ancilla types. The way this was accomplished was by changing the definition of these intrinsic gates to accept any integer type, which forces the compiler to create new instantiations of these gates with suffixes denoting the data type for a given instantiation. This change came about in summer 2016, so it has been around for awhile.

@ajavadia Which passes are you referring to that are broken by this change?

from scaffcc.

ajavadia avatar ajavadia commented on September 26, 2024

Ok, I see. That makes sense. A lot of passes were still using the old data types (ResourceCount2, GenSIMDSchedule, DynRollupLoops, GetCriticalPath, etc.). I will push fixes soon.

from scaffcc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.