Skip to content

Latest commit

 

History

History
66 lines (62 loc) · 13.1 KB

index.md

File metadata and controls

66 lines (62 loc) · 13.1 KB
layout full-width hero
page
true
true

A Python-Native Compiler Toolkit

Design your own (domain-specific) compiler by mixing predefined IRs with your custom IR abstractions. Always optimize at the optimal abstraction level by lowering programs through multiple levels of IRs. Connect with the LLVM/MLIR ecosystem while benefiting from Python's productivity.

<iframe style="border: 0px" height="3500em" scrolling="no" width="100%" src="https://marimo.app/#code/JYWwDg9gTgLgBCAhlUEBQaD6mDmBTAOzykRjwBNMB3YGACzgF44AiABgDoAODgJjZZpEYMEwTJUHAIIiAFDXL1GLEBWABXECwCUGNAAFhYDgGM8AG3NpyeAGZxss7QC40cd3FCRY4lCAhwiADOCOgecFB4MOpQBHCy-gA0uhiGIqYWVjb2jv4ubh7+HCDksgXh7ixV5RUAOjXhAMRwAMIQ4MDmwAQ4cAAGXQSI5jh9cDABAMoEtCZ0GBUeACp0wCEEEGQARhAQANZwVMN7IfRQEOo4DCbtYJ3dvSDAJucAtHvEROYh2d0UnnEBt1hqNxgEAEoASUmLVeADVAgRyHAoTD4YdaAw8AAPMgEILACD4uC2aBwADa01mdAAurI6DAYGAgs4APSssDqcxgV5gcykUlQEAcHCY9RbDiE1lBGYwOas7SJQJwIgxYYqqJUaAHRAmMzmYikaAcBaLBxLCA4HAGwIiOAAN2AeCoGPo-UAGMRjADU-Q4YzJfRMMCg5m9vr6mAaHiqgnCunCkWisT0aWM+qydgcmCcriacEh4Gg8GG5nGdDwGrMQSCyAAniT1AQg4Shl0YPXbOcQHBsQARSYAGRJZPoaxVmzwO32NWakPstYucCCeAriDixHOUECO3U8Gx5CCpY28C2eAecF+RGRUEbZbH6fEBHUJdrpvcnfaPYP5g4W11HyRDgUCCEx7Q4cwICoYhzy8It4ijdwbgIe1iBgTAJHoTAJkwYDQMSBC4CQlDYEwWxGxMLCIBwtZQNI8j8LNQiiWItDVBASJbEo6iQPtBizSI1DMBAzjsNw+0hJMWw+PceMPA-bt90PX9-0IcggJosCIKglAelMZjBLEiSRKowzJM8QsfDKRi2mQ1DwQ0yZJIteyeJaWwAAVgiCaS4Fk98uy-JS-xMAC1LE8DIOg3SBJImVqSE4M8EQEAuLiuUGFgyyCJsliqXSyZEuSi08rmHy-JJALFJ-LZ1E6Gwt0y+ACz5Z5aAAIVq8x6pqeTAp-JCyFxczvHgABZAcbMGmAesq78OHIYBhjwIMQkawIUHoJUyKbJVBhBGbPyq+bFoNFbf06mBumGuCpFsWw-lG4QlVu+6iEesApEZKAlVGvAQHBOwllrMA8B+iByC5PAAHkwC2gA2AAWA6FLmhalrOsTrp8UzwbwZG+slAgyCgMBE2IIIOF3ToKbAYMsfgIGQfIdzg3xo7gAaiz4E+4NgBqsglTaiCQqVAHRSJJVJkmKQ4WGdQ8fCXqjrALy8FWrm4Hc4AQcGPBPOrNm5omCBvj0kAkCRTBdcok36bgfA0JLTA0dOmAgkNpTgzXIJBRAdWRvgxiMLodDyEoWxghgJBNoImK0L2kYuIgiBmR88I46t4FE+wtiOISyJkrTjwM9zux86SlLsOT1PY-0kjS84oJCsrqi0rmcvC9r2ySMM4TSOgLjOzwWGCJsRBKBuGxMAsUBgUuiWCOrzA6AgNZWL+jii-cLTiHQu6-i3hAN7LpuC6eWxa0PyIkJMTo8EwRsC66AAvChMBMSPvJqcqlaNkh8V9hTD+GwZgfxfhWNaLQ1xEmeMMYAr99bu0VrNT2-8fbQD9hFbSQlZRzDtgOSKUASp0EQR7H8XsAEYIpiALoUBMAp3gGtcakJwQwxgKQ5Bh0-7e0AepHiOE8CiibrvEsEAP7zziGtVELQ4RizXsQKQlgxGkBbGQjgFD0FCgpr3SSVtdhgBwmufA-cuowQ1lZM0LlQKOVsAQlO4IjF4AAGImwWj0RBZU1EaN4W3EOkQhHE3Qko8RLY7bELkcIqAijhYqKJDURMMQ4gWMWC9B6T0CKpLesIHm30MlfT5ruUGBEhZiL2IfKBIDYHgI8dlOuMArH2hsc5DSbkanWTqcQgqZ9iq4LoIfZqXRb4wA6nVYgh8CHaWIW0s041Jo4hgIfZhrDabTMWL9f6gNgZFMYqNcGkMYaHy1jrP4qyKjSNkYI+RUTgmxIIIfORC9GINJsXYsADiejONcQ8U54QpYyzltss04TLmROicoiRh9GYUBZrkoOG0+kEWDqHcOkdo4IsYhnJFokNKHwzttCi2L+H4txXUzOrYcBJ30V-DFpKE4UpzsfRuzcSXd3XuxE+zdKUp2pfxUlDcO4txwfFU+FcWUsUwPywleEu7ip0ZxQUg9IgjxpayoyXE5WHzHhPXG08uhPCGBCgithEaH2JQRB2QTzDOxOstN2h86X2v0cvVeTcJWMsddgxA+8iCH35SK5KwAL5X2WkSW+BoH4ECfvAt+H8m48sWDjGwnjUhGAyJYawmZHA1EyXgd6Pkc3vRyT5EpIsagDNasMzq9UfLrIBrYKFNa9kGgOTUB5dyaiICEnQYQgL3DBx8lsLtPafIUSCN2kGPljUI0nfRGoDqahJAXU2++DIaH4XyOETt7YQZiFrZskGsgp1Kk7WOnt5VB3borMwPd9atmHpNXAQdp6QblQJVs3df061QvvdOwiQ6X1vjgB8WIFh6GiGYPijgTjyIw1kCoUgIAuQsCVLIWQW6tlKgvRhv9l7FTxG0ARmoNA3TlqGSMrqxBZDAa+GB384NazaECCENDmGlQmA3WaZoUgw4qmShWVYRNTgBCQB8Tw8AkoEmIGCcYJAQpwBXi6e0AKQjIArDvSI5BEUcCGKoZe3R4DMBYFIWMZoJQ6ZXfpsQLA2omcWCYbTfG9NEysy0WzFQdjkHrMwNtsgS17DQ1AelWyQjMB-fDX9U6CPlXCHSjgABxQg0ETCwYIuEbonI3aMBY4+xUqWPAXCZLuIIWWTDJEPuEDztZGCVfKx4boNhsQPAlcIYryTGIVALdkr6shOvGHku-EsiAtgGlkPyEAWxyCIAQEqO5QHnDxBAEqPYUXaspO9bmrrwYevrfehwfrYD+TDbwKN5KE2puLZVEt+bVGZsrby2t16G2Prdd63trsA3LBDZG2Ns703LtzYW7dgjq3fIg9oIaCYdDL2tfuxUWLkJiZGigFCnJHAVYkEsBYJwIOYtZxwBwBHEPoAo6+mj5AJYse5fa2aeHiPIck+DEBCg6hmxEmx7D6LHhOfuGIwwUj7Uq2Ucq4x4I8RO1KfMJhzAEvj16noV1aXwwOPU9JuDRXpZmDBw4KNLkthYPi+GFLiX2gmdBC5NNanfa5dECoOrsQWvuPkD12ANDcvXHq6VKrygxvTfm9h7FgAmk6Lq+vrfOnV9zioXGeP+EiLx1Q8n9NCfEKJ2gcAJNOi3BMGT-55OQQdMp9aanCEUFhwbn85mnMGdYIgNzjFB0S4c7pgT1eWBbDr2aXUFF3eN8ry3qzXf5fkA74sL36um8Wec4Zr3I+KiD5t+PvvlnDPz+dLPyDAMkwEFgykXH5KJXLt3cu2DVHPigZTskXfhQIDFFKLYGMgGAASxAIEhGjigbECBzfa0Gbci8dg-hkQrp6AKwgRyUxgXZbUlRecywIE6dQkggVYzB-8bh1A+R-heoQCmJwBdxblXAagABvfwCGcNVdcwUbPHA-EgvAbQAAXxqBjHKgSViEDk70PnQwnURQ90RTD1txlx4O7wV34Pr0Piw04Pr24Pr3o1xVxSwgwwImo3P2VRp0oOIMhkPjH2EK5xTFTXTAzRyGzDyFzEKG6Dt2YAAEYF1EBsQzC4BzC2AF0xAihaoOBDxgB6oEhTCZdxAbDvCJd5ZGBeBdohsLBlBRodAag4hmBnDgBXCugPD9UPcfCkj-C8BAjgjTxzBlAAA5CI8IA4aIm-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-hoQpBnBOH3AWj-6U7swt6h25q47QOK5lHjzf44XKEtFEXXVhLf3fFMWj2c3r2z3qXs3uXC35XANO3f6xGe34pf7+3TbGK2Pjbd6zQx3js7bJ2Hb+qrpD3U3L3c2b3M3pO6XZP73428NOPko-6r6N3e21Ph3ejLnWDFhTO8XzPJP33rPMBbPP3i2QO3OF7gPGJFPRGwXNbIPk79rhjoTRjYTjzvHqTznwgLyljlx+N885gjFzw-qAQMslxo0VMWmVoNiMP6wvcWcKBzizRLjrjbjwn3AHini0S3jmuPiCCvi2unS3MmC3SrmEubmhjzG11QhxH35cYlQYuUoJq4TFuxBE1jtFvlHANvH1GWBNGPAdHiF9HDHaxjGtHTGpvyDFvrGcbzmRut94hFvkgmOkvPHr9jqhuCJzr8wiZiBhnLpYysDau4AqHzwUH2u4AoYiBEmsCsmyIMakoUbob7BImxxaBVpfuSYyYoA6nn848oImSUJhoDRVBfvkQSwNiiAqwawNzYaSPk99M-vEwNjJHAhixD6ai8B5mlRs85hloDhWH4ASubggm-97xoBr4YBceX8mTTg4GSipNiDA1axzwsDxSC8UAvsKxLx-ghsIAUJoDEO4gFexNpM8uNjHzzcYe4HWeRe7gDQyHMRhSWnIhnN0t1nxTvJEQgDMf-vdf4AsC9G5mLATRPuXTLmXvoKoVmZgxj0ESvTPS-1vTFzsQhHUvfbqC4Teo0U7YvcKyUEfxGeseogpM1pIRffsf+WwA2hGxiY1Ei+-ePa7YinAkvASeQbbkkE5IC-CZiZG+KZxTKBkASAmyNZJgtjyBfKR-ANO0DQoj4HSgPSz0MSrZCBN7zhSgtSAN05V-5+vdZBrTl+O0ETkRmBx+e1J+oAR-ZBo+YVtNw9OnSBEZZByRgA4AfR8GhS3+rp-58A0Nd-tANIPDEv234eAt+-wM-hPyn6IBawN-LZDHxx4L5H+MAZ-uSFkBv8P+jGVkHYTYBsAjO3-OIL-2OyDo5+gAvDOAKYLyMT+Ygc-kzGgGwDb+jOJARBCf4IwX+nANgDSDgBaM-0pAn0uKRUaGQU4c3WvlJmYAwwa+mPcsnPX4QN9seYgcvn32x6OMua1BFdsIn6aMAhBBiVApj0EHu1MAbfP6B33hoqDaIcgkvt9BT5KhugJgXDvfCoA4BOQjAd1t8FBgAg7B6gKeESAIDYgXBwwZcIIJmoWDiYpgJ2CnDgzRxEM5gA+v-0H7zRSAnaWmDjxIBUAE+F-BIaDUwDJCgIiANIXI34SH8mYmQpIYzlSGEZgGd+XGjoz0YAwzc5gN2Gd0Ay0c4AZjE-j13cCylWh4A8gB0NaCMlTI7Qmxk0QY6jdvOFQRQUz0sGPtq+FwTHofFoEUB6B7BXfisMH6iFVhBEHobITn4aEN+waCOoYPADt8DmRIeNBUEGHrCCIhkEIWMmuEzVhBug4mMmnG58MhiZaCvtMJqASC5hzwmoIsMv4j8fIjA2FB4BAGrMV+VwnfrsNQrx9UKS5JdD5Bb67wjBpPKBi2HOGXCJ+PkRzktzBYrde2jw34WIMh6zDRBJpcqJ21uFbhmAkw4vsTH3a4ju2XQDQcQEYCdsiR5I9du4E7ZFCIBGzKAVfxgFwCmYd-ZgRAFYHsCOAnA7gbwMIB4Y+R+gw4aiJMEYieSvbakWxiXIeD7B1AJweoH8FuCbBOHLwffB8F+DXBgQhThqM+GhCDsYGfdvBijhIZD4+7TdCfxKHZCyheQkHD0M9E5DUhIOXkR6MmxZCAxPogiAGxUY7caS2jLRkdzqHm4WQJjbNIyXBG9DAMXQggj0L6F6lWhWIi-n8TOYjD3qD3YMesJU7pRDBtosZJWPbicjMekfQMlCTT4zZZuDY54XWJDgdjiAcJKAOJAWhBgxAg4mAGYPEg9ice3KSkQQGtRDjmAI49UfFAnEcApxM-Vsh8FrBC0ggRYCgDySiCKMBxzwGAIxgAA+S4fcTKFnHHjyoHRXfpgA3FOFrCo2QgFRj6oHBna64vAJuJvHWE7xqRR8diGfHcleSxuPqhLlFKyAtG-Yq8WiSCDY5uBl4kcbBKcAVDwggxX2KQBwiQRT8p3RZlYK0apEWQeEuEuEBVhhwHgQtPTnBlYCyiEgv4ufurnlhwBXgnPbkqBKM7gSrohEyPBLiFpVBDSSpe-LUBgAEEyJbiHAFcQly0EWARnMSQ8CVCcS4gz8bWLIDkk9Ave3EyPC0RJAsB+uX4q4kyTgCGSeBdEmwgxIfEsS5+OEgjJJICG0FagBAQQPEkgh8SaJPA28eZK-Hv9WAwk-scJJlDCTmmtgByU5PCAAAtXFnSzhBSAhwhmDhhWTJAPiPxVqDcSyGuHiRwJzAaCUhIdg4SlQbASPJeMyk9sYJuUjcflMjxBTbCRU9UCxOgkS4Ie0E0+GIF5L1SlcngewG1NLAWBqGEU1hJgGikDhwu+cFqVthqnmBGMgaEqeBJ6kVg+pUUmKaPEDQGtsSsOQ9CwC9AEEqpUkmSVNO2nqgAAfHADwGzSdJW05aermkmTT7A+07qW4NYDKBIxjUlye-2YAbjrhL0r0IZjckLZ6JhAe8V5MskviNxhGRiOcCoAhAvpPkmALPnBmQzvpMkkyR5P+n-igZ3JJqcGFBlmg4Zr0iIJRVZhgzPphmYSbDKJk0TEZv0sySjIBTMTWJ6o-OFjITRkzLxp8D6RDNxl7cYZbM+GeTNonIyZxqMumVVNPiMyLhZM4WQTOxlky9ujk8qpRU0AtTNAB4mCYRJQk1AWZCs5gGbhAD0ykJqs0WRMFBpWogpLUmcdrNplNTNA5VMmRhLQjgy4Mhs4YAfVanyzT6eE+mdrIc5bZHZxs5aahPe5UlGIu3GoCsAgQ1itwHwWmDnjkxHM4GT4cbFJiOagBtiV5Y4iQGgZHAQgOIZaIUnIDQFVgeCchksUaai4psqubEB2DJAgwoAGEpsHgBNA1B626ebEMlHQKG8KG54isILx2LQ9iIBIGGt2jfxrh6wseMOcR3hrNyc5ZAZEPr0NCWB4gBBS2SAFoIOgQgBBDWcvOAFvlu5RICsH3NCRZMs52IFqEMnfLjxveizaAGPKWb0985d8DYpsHLBbhD5GxfJueDwAABHWqBLhBppTCCy81rq8VMaPEHi3XUxn1wG5AKagdJPoIQThlFj3AMC4YWVS877t5pA0mKewU-GbjNUF00+LgruiSEzQtsrCWkIUJfjfUf0mceVIIj8zGJvaMWRDKviHigwzC-OGwu1lsKtCiwRCUeIA5mzY+w0zhcNO4UVAfZ1qO6C8NTCJdoKuyaggclCBwk1oZBJjPJgsZdAtggGQYhNWXgWMgy1BebHIv2RgBGMrwI6afFOajCHuu3fbosAAA8C0USk3FrAGhlAs8muVpFeC4SQI6NcwAAG55MZ4K4DAGcAIxcBYAbEH4pYAHS7FrdEsDEtZ7OLXFLAKgKsDIBbNdQeAebMM1eBUASAYAKJQdIIJkENFHANWHEw25bZludBOxayEkYxLpQSASwA0scUHSTq1QGoIMUu5oZW682EWcxPMXBhLFpYhcjYoIgOLgATi9sMkvcWdMqAXivpS8BNj+LAl0zBkKEvCWRLolRBG-MEF0U0IgylMWIpI2ngLRIcbozvF-RqJGJnw+AZQGAFrD0AiQB9BaDWCOzkBGASwG8JNWpw2TalrS9pW5m0mXclQJSvmGn2oL7KrA1zN4Y4Cz4BQbgmOennbEkF19UFqKsZC42kUTdHAGKqwUYubSww4ABKzutWCVD3Naa1gmbqEEhVkE4SgxP8qOi2xgBDFy6RBKYsGVQBhlU0tYN0CbhrgzAqk8lYO3ZXDKvOyGFgAJOAlbZ7MrHbIV5CEjbMUJRnQZldGMDDVlw3tAiLNLFW7tjezKtHIO3lXVhFVy0NWZ0szByqd6+7DVWrHmx6dyQDqooI-gsZgxqCiCGkEqA4DerPVNKyGKyvkVgBv4Ay8YDbTwDkgSVCi51RYxpDDLHyThZdKYAghEBpBZoU-hSDbaLBxFG4kQVPijLkieS2zfOKpL6qYBPcopW1VqsYiUAc1TwsQHitTWLAhSWZYznEErW6r3AxgIwKvQP7ajHykeDttsxalFreSJi2HDWq-G5qYA5IRlVwKhmWEgqU07NZOqeEzrtmXAgAIQWEO1FQcsOPBJH35152zFebIC2kAy16q62dbQW0Cz5wgOq2HOED3X1Rh1y0WHGQQERC0dFZBRRqNXHUcAjAqkQ5faH5UhQLliwMDe1ifV3Cgqo7eZDjjNDeN31-a+DTJA5xaSxhP6r3kUA-jnAsm5BcgKLO0lWqPOC3EdazAwBTTsAleTAEwEMzYAkAphTACwGPKpobw3JbQEAA?embedded=true"></iframe>