mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-03-13 12:43:14 +00:00
Partial-rebuilding /home/tstellar/llvm/.git/svn/refs/remotes/origin/master/.rev_map.91177308-0d34-0410-b5e6-96231b3b80d8 ... Currently at 236377 =e97eefc9c6r236384 =d087fe8e0br236385 =4f871770ffr236386 =b5adf7c5f3r236387 =d85813d9a5r236388 =6b7b96f74cr236392 =a474e3fa6br236394 =2d05c885ffr236397 =dc0b6f2171r236398 =82b7c1b25br236399 =7dda4c92e4r236408 =0e93e26d37r236409 =bf2b36bae1r236414 =869807297dr236416 =44ea6d9cbar236418 =70a6f4522ar236420 =125a76c502r236421 =fac3fb4244r236427 =01007da245r236428 =ba99a57342r236430 =d9af71b574r236432 =7f3a9e28far236433 =e6cd0c73a7r236434 =375079a549r236435 =de7e17f65ar236436 =8c0af15338r236455 =9cffebf3f8r236456 =c41c3a4c3br236457 =7f88b179b1r236460 =9cf57f7a88r236461 =cccd128a8ar236462 =458a265e30r236463 =1ac87035b9r236464 =79597d7489r236465 =ee160106a1r236467 =7e93f3b723r236468 =8737acdac2r236471 =c5315e5d05r236472 =b63d8107f0r236476 =3784f79d64r236489 =898fd78e33r236492 =eb32d4dc7ar236494 =672996e18er236497 =a5f2faff5cr236503 =c3c0de39dbr236504 =18481aac4cr236506 =1aeb111842r236507 =2f7322b348r236508 =4def1cbf5dr236510 =a67d5abd53r236511 =7a5c0e599cr236512 =4e3748ca77r236513 =154cb19e2fr236514 =46356f6f6fr236515 =92a55e80b8r236517 =5ffc7bfc9ar236518 =2c04d158cer236520 =1a21909e98r236521 =aa5c996edar236522 =1654111384r236523 =878c6281d3r236524 =cf0fa9b9ddr236525 =538287dea2r236526 =e07464832dr236527 =88b90e11b4r236528 =7e0334d096r236529 =d32c49bf68r236530 =97dbeaa8d5r236535 =08c531db5fr236538 =2bce3aa5f1r236539 =cfdd004e7er236540 =96d3361ca8r236544 =3b2c61b2e5r236546 =cc0615ad0ar236548 =605f316258r236550 =e064ab5798r236552 =a17cc3b189r236553 =49d19ee888r236554 =7aab5ee93dr236555 =000e7d10e8r236557 =9fb69672d6r236558 =730ddb6f57r236561 =d3a9dd7042r236563 =d77522093er236564 =1df2d64d55r236565 =b9a2e8271fr236566 =93a4a7fe0dr236567 =5c175aae6er236568 =5a8a366ddfr236569 =caa560cfb9r236575 =3a1777818dr236584 =c0b7f693cer236586 =5fa37a7f2dr236590 =78fc2103c9r236600 =e2007c9e7er236601 =0358a25e78r236606 =982f60be44r236609 =99413f0d40r236610 =5304314702r236611 =683cf0f88fr236612 =530a574a9dr236613 =cac51be31fr236615 =5a6ea245b0r236617 =26e46f2283r236618 =94c39f6914r236626 =00157f3ae8r236627 =4e21d7aff9r236629 =7838051bdar236635 =84b8c10729r236642 =a414ba7844r236643 =d71e55b97fr236644 =0040d179d2r236650 =537ff782aar236652 =b6ca45c39fr236653 =43afa42908r236654 =ea89afbb84r236656 =b350776f03r236658 =d15319f75fr236659 =8434a039e2r236660 =28b0dda32er236661 =6cc81efe93r236662 =cdedd99893r236663 =0f04f3b213r236664 =63134e79e6r236665 =406a47c17fr236666 =c58f23eeb6r236667 =4716d634a2r236668 =a7574638e7r236669 =9daa4b18f7r236670 =cb0a50fe54r236671 =4f28a76c25r236672 =8a86e2564dr236673 =b82de79bc1r236674 =9397699834r236675 =9a46db689ar236676 =d9fd44e97ar236677 =e6f0494cd8r236678 =be6ad41cddr236680 =a94bd7a780r236683 =49204878d7r236684 =16e7e690b7r236685 =f64a0c1b3er236686 =0518652fc4r236687 =cddf82ae35r236695 =4d5e059cdbr236710 =a3ded6b432r236711 =c128e5c8c2r236712 =3e9ef05a68r236713 =56992eb6edr236714 =d08d0340e5r236721 =89711f8e5cr236728 =f6fa999df3r236732 =2d0087d82ar236737 =ef7c2568far236738 =bd58bdb7a6r236739 =ee25f1e872r236740 =39cf555429r236741 =b05b828eabr236743 =f575e9f902r236745 =21cecaf445r236747 =d7b5144d53r236748 =8359916759r236750 =aa46024ea3r236752 =ad80c2d9edr236754 =9e31c0cf91r236755 =308873bcb8r236757 =46fa0aabcbr236758 =5ef2a17a62r236761 =12fe27fe05r236764 =d887b7ef2fr236768 =82b39321e5r236772 =6564ee8933r236775 =bbff669c18r236777 =914ef58002r236778 =2bdae13effr236779 =db5cc208f2r236780 =57d28fee47r236781 =97f4d65a0er236782 =e4eff4b231r236785 =c8cfbdd791r236786 =f31b4e9690r236787 =ee2b250417r236791 =8404686a68r236792 =a534f7be2br236794 =330497fc95r236795 =c0b80631b6r236797 =8227e6a8b4r236799 =66583e4917r236801 =7a5d9c0611r236807 =dfa21e1100r236808 =b1e759524dr236815 =ca33d72658r236829 =4462e6d1b0r236835 =3fdd82e066r236838 =baac106e1dr236845 =62f973306cr236849 =4650d0e792r236850 =e9359f427er236852 =900e1d0766r236855 =ff3820a182r236858 =5081399663r236863 =405e5f276br236865 =d7e20e7be8r236876 =7fd56b1e4ar236878 =58b44d65f9r236881 =aedc9c7f8cr236885 =8eaf047588r236886 =d90099d36cr236887 =c417f302cbr236888 =5c7f7462e4r236890 =c2347d5cf1r236891 =278c121d39r236893 =d3be0003c4r236894 =5de9960136r236896 =74b576041ar236897 =f9f04c25b2r236899 =d4f7f29277r236900 =a54f2b87f7r236904 =fd5c9868cbr236905 =262697d9d8r236906 =8ae273d380r236909 =5ba2a0b8b0r236912 =19d2499d6ar236916 =75e36e847er236918 =275c111d9fr236919 =4406c32c19r236921 =68e53f68e6r236922 =f5b930b2e2r236923 =7d66bd3e7fr236927 =01d1787830r236928 =31e094b55dr236929 =fcae7eada1r236942 =52a759a24fr236947 =59a0fe6e3fr236951 =6c318f59b1r236954 =a0adcdb9cer236955 =c7c44fa75er236968 =3101b1a432r236969 =c88eae46dar236970 =73f2a7bbb2r236971 =8189eb4d7er236972 =a08590e2dcr236973 =cdd4737be8r236977 =d6a9af6fd3r236979 =63df7cd4ear236981 =beb74d3cf7r236987 =fe78d295dar236990 =9ffcd1bdbdr236991 =0a62359646r236998 =2605531fe8r237004 =c9f2596abcr237005 =37848f1adar237008 =948b20ecb3r237009 =5b5782c20er237013 =da4dc2dadcr237014 =aeeca679f7r237042 =a1945939bdr237043 =0cdb698aaer237044 =383c55870er237046 =f6548b86b6r237050 =051ef86497r237051 =4e5be5af59r237054 =1d4481df82r237058 =aeda490976r237059 =bbd301d97ar237060 =9fa8698925r237061 =310d031235r237062 =96086ad501r237063 =e04fe6c135r237065 =12a7fbc55cr237066 =6eb095d7aer237067 =66c6a4c240r237069 =aa1c57e324r237070 =23ac4f1856r237072 =d1074b0e7fr237079 =0552d51c45r237082 =772410aef6r237083 =de65922947r237090 =ee686477acr237093 =a4d6a35bf8r237097 =9cf6c24660r237106 =cfff317af7r237107 =3bf2f23adbr237112 =ed73167673r237117 =4ffee4b853r237119 =d8b1e16033r237121 =98ed1175d9r237122 =bc20d3b64cr237126 =00666a17ffr237127 =e38f45effcr237129 =9cc691fa05r237132 =61637f35c3r237133 =27744344f8r237134 =9c9f5585b9r237139 =112c87e94fr237140 =a89c1839c7r237141 =6ecd744594r237142 =f36ad4aa04r237143 =a52fdfb7c7r237144 =1ef2ae014dr237145 =09f089a39er237146 =413b283997r237148 =77686a97a0r237150 =561c44fc33r237152 =e83e5d460dr237153 =2c3514ae0dr237156 =e2d9012a38r237157 =99ffa5b711r237158 =043da74b89r237160 =7fb69bc395r237163 =eaba2dd2f1r237164 =07cf3c32e3r237165 =975251a698r237166 =81b3ceba60r237167 =94f1e3c66er237168 =762a691bd6r237169 =f23c6af13dr237170 =891914aef8r237172 =c89f135a41r237175 =0d8dadf96er237176 =6214347294r237179 =fc6fbeda2dr237180 =fc9309b63fr237181 =9e2a698369r237185 =fab55cf45fr237186 =9d14a5a910r237189 =8574cb5905r237191 =11fb9642dcr237193 =414a781256r237195 =0f696bb57er237196 =00730a77f1r237197 =c31e732474r237198 =b8a0c0ecb3r237200 =6865b977aer237201 =1b8b7d61eer237204 =00386077e1r237208 =a5a1b190d8r237209 =36ae8103b1r237210 =42042e5c3fr237211 =82550fed5cr237212 =36cb3ce66ar237214 =ead2d1fbe0r237216 =3062272092r237220 =f0240dde53r237223 =c83d5914c3r237224 =c6c9f35804r237225 =a0706f51cer237226 =19a19a9ad1r237227 =6acfb5a28br237231 =448c555c54r237232 =d5c1ae7e36r237234 =1336daad86r237237 =6eb9a62fe0r237242 =4d8e3c44c1r237245 =66112dd7f8r237247 =e8dceea402r237255 =c617a13a2er237256 =b937dadfb2r237257 =cdecddaf1er237258 =e55e117ad3r237259 =dcc57103b8r237260 =a3bccceda7r237261 =e49e65326ar237262 =552cd98683r237265 =0e0929ed98r237266 =a036cd4093r237269 =12b5fa5f6er237272 =2727b58c88r237273 =115494b777r237274 =428e9d7608r237275 =db703aaeddr237276 =1826197dbdr237284 =89614e19a2r237285 =7569db4a8cr237286 =3f0ca03e94r237287 =f11e64dc03r237289 =3bc33d9ca1r237290 =ac8a7cc8d2r237293 =edd72727adr237294 =43b1362516r237295 =b11a191088r237297 =da645e31a7r237298 =42ab8c0a90r237300 =0030b52f73r237301 =33bf03ed89r237307 =98f0f26fdfr237308 =933e6287fer237309 =393c054cd2r237310 =a8a342bb41r237311 =ea3c20f400r237312 =7c001dac7ar237314 =b96942f6ecr237317 =172e8df4afr237324 =d8b3f0d785r237327 =edd2bb863er237334 =e6fb4ac3edr237340 =bbf57b36bbr237341 =1fbf73bae3r237342 =8a049abf2fr237343 =bed1965111r237345 =f8ca978417r237350 =2fa91afc46r237354 =3f7bd961d1r237355 =fbcecce27er237356 =78549eb45br237357 =6a882f8907r237358 =dd469afe15r237359 =e7beeb8ea1r237361 =9ce56af1ebr237362 =2f29498a6br237363 =7c7cbd2669r237365 =23b0065f29r237366 =e6f281a2ffr237367 =e0b6c1146dr237372 =c2c3c689e6r237373 =6912fe6f35r237375 =e9c8191eebr237376 =be4ab8dafer237377 =56a5661c60r237378 =fd466aa498r237379 =49d3196418r237388 =abf95a22c4r237389 =4789642b0br237394 =42d0f8304er237395 =95f7517f1br237398 =b046b93d25r237399 =33a0cf6c56r237400 =6f1b9541bar237403 =a8adbcb9der237404 =29a3c1d580r237405 =2b5899e7fcr237407 =19eda5312ar237408 =47ccfa7de8r237409 =d0db0dec5er237410 =a1882d43c3r237412 =634e01a3e5r237413 =4c4b944e83r237414 =fa93d0e1c6r237417 =1cf942cb4fr237423 =4fa71b66a8r237428 =039eb5a7b8r237439 =39a7d6e91dr237442 =9cf8a47690r237449 =08709687efr237451 =975307cc50r237452 =eb9033d963r237453 =49f69b8e25r237455 =d63e0fc2d9r237456 =ef0b6c4b1er237457 =7363a8bcddr237458 =c683eb2d37r237459 =85e632de29r237461 =1bef1cdd92r237462 =0048c06a9dr237468 =8b22e9c00ar237469 =251a66ec37r237470 =792476e626r237471 =21a996a0e3r237474 =7fa889dd87r237476 =e892415f25r237478 =9e514203d1r237481 =39aa893201r237483 =fc9bfcd184r237486 =eaf14f30c8r237487 =6c16124807r237488 =6bde794d52r237489 =b42b9f8563r237490 =c5f2ba0401r237494 =ddf553bb8dr237496 =a5bb842d95r237497 =5f7c1f8415r237498 =9e6378de57r237499 =24f0469865r237501 =43c7aeef66r237502 =57e32d40b7r237503 =487db4685ar237506 =8081057fcar237510 =3ac70da982r237511 =a4b093e2d3r237512 =819ce3c51dr237513 =5dddb1909cr237514 =d43901cbb1r237516 =39dd163cdbr237517 =f01f1c413ar237520 =bc71c2fd8er237521 =ea08c0b975r237522 =8ef9968822r237523 =a0b851cb9cr237524 =11ba91f321r237526 =e9fd02be07r237528 =cca49027efr237533 =9380329c4er237536 =84b93666b3r237537 =a0eb803376r237539 =2bb2ea8105r237544 =eddedaab45r237545 =01c0018953r237556 =78ce816d3fr237557 =c4a426be4fr237558 =d026e5020br237559 =324d41ce49r237560 =1c21f2ef8cr237563 =865eb964f3r237572 =59f6c04f94r237573 =2f2bbe4cedr237574 =a4c8c9292br237576 =b6f6eee8fdr237579 =d811b4bacbr237580 =f272788a95r237581 =ee058202far237582 =1467a41471r237583 =0139af335fr237584 =292c78ba68r237585 =ccafe05df1r237586 =688ae334a3r237587 =0b9ee775f5r237588 =febe7813c8r237589 =2703007b7br237590 =9962fd0e2er237593 =0799eb1140r237594 =19696daa21r237595 =7b81f734eer237597 =2306579644r237605 =881547e01br237611 =e4603f0dafr237614 =825a528bber237617 =05ef67b6b9r237619 =70a2c7260ar237620 =8b6f5f0909r237621 =6b57892624r237622 =847a488261r237623 =300c594636r237624 =042dd34f9cr237627 =4d632b44e2r237628 =b2bf278152r237629 =ff4ab44626r237633 =4f5829ac4dr237634 =1193b61df0r237635 =42d8237570r237639 =37f1bba13ar237641 =d42228154fr237642 =a641a4a89er237643 =a6698bb5d4r237644 =91088c696dr237645 =09f87b4a7br237646 =c3ccd67d72r237649 =3b3cbed1b0r237650 =bf27e11e02r237651 =42cff157dbr237667 =d70b3aca8er237669 =df11b54057r237673 =4a9771567er237677 =6aed5afbbbr237678 =8fae893373r237680 =ef3ec7c783r237682 =5440f2198dr237683 =a44933e6d0r237685 =7004ac8b5ar237687 =07cfd922f0r237689 =dfce63b1bar237692 =7141b3d6f3r237694 =add5ea661ar237695 =f1ed587ebfr237696 =94ddfe5e09r237697 =70d1005bbdr237701 =42737039d5r237702 =51891f2364r237703 =92948b04c3r237705 =038aeda7cfr237706 =f7ad33bd8ar237707 =98fe1d290cr237708 =328f462f3cr237709 =27ca64f3d3r237710 =61386a4fe3r237711 =f75a247286r237712 =4c34f96cd6r237715 =0f9fcd22b3r237717 =4c8545c815r237719 =041ab65fcdr237720 =4d88c3ebadr237721 =4ca606f22fr237722 =64b0d53256r237723 =65266361a1r237724 =31d2ee7360r237726 =dfc41dbcdar237728 =94a1bbfebcr237730 =e5a723675br237731 =b9b3fb261er237733 =05f725eb67r237734 =4345121f7dr237735 =556425f9a9r237736 =486f97bf19r237739 =c0f6113287r237743 =4bc9d4ea26r237744 =a5703bc52er237749 =e1fce8692dr237750 =891fd53a90r237751 =a6f501cb97r237753 =95d08bce87r237766 =ed5afe4277r237770 =37e9aba0dbr237772 =349f0b12a4r237773 =64f9e5908br237774 =ee25444b06r237775 =43ec501d2cr237780 =362b8e5b52r237786 =efab5a1dfar237789 =e1207bb8a2r237790 =cb9a410149r237792 =a77462187fr237793 =b65b24c0dfr237794 =cc3dffb519r237795 =5a2d715235r237797 =8ca7ac2a38r237798 =f5bdf04f09r237799 =c8d166a437r237801 =10054fb7b0r237803 =20cf3f41e7r237807 =91a675f972r237809 =1563a4a416r237810 =9584e07a9cr237812 =12f6308247r237816 =80b2cb6d4dr237820 =ee15f86421r237821 =d594ba0815r237822 =fa3d0dc026r237823 =bed96c8d97r237826 =96273f6cber237827 =c212d49d75r237828 =644f1ff184r237829 =cfa5342444r237830 =e86ba4b571r237833 =3f1b2bdf5dr237836 =b753a30d3br237837 =e677c7bd22r237838 =14a714f727r237840 =0dd9a6767cr237843 =fa13c712afr237849 =d4483d4512r237851 =05b0f7dc93r237852 =7681f6a1b0r237854 =d0f4ffa472r237855 =008a1efecfr237858 =6d1485e974r237859 =f12338a6b7r237860 =47ee653cdcr237861 =d591505d9fr237867 =aa87ff8440r237868 =549a742ba4r237869 =0141c66026r237873 =4652459f64r237874 =8eca988b00r237875 =1d4f2ba509r237876 =583dac827cr237877 =80bb2d981dr237884 =cebe8f8b05r237885 =87d1836793r237889 =41c749a31fr237890 =a9a920d652r237893 =946d5f5631r237897 =5ac9604df7r237899 =897d9bccdcr237902 =b6ea67e027r237903 =86425451e5r237906 =2267264cebr237908 =57f70578far237909 =f209e26fccr237910 =c1d0ef9a9ar237911 =dc089e4dc3r237912 =43356a1a45r237913 =e0376b0782r237914 =7d83b1223cr237915 =921229e74er237917 =090f1dedf0r237918 =430cdabf46r237930 =4c919af335r237936 =7521964d28r237937 =24ed4de261r237938 =ad7c1174c7r237939 =493bc7e300r237940 =a127bd0585r237941 =7e452b8b73r237942 =802ab073dar237943 =9a9984d0b5r237944 =3b294b5753r237947 =5368a26e16r237949 =849c7601a0r237950 =c9389db422r237951 =fabbc4985br237952 =63292d1bbar237954 =3e5034d130r237955 =f8330b43eer237956 =477acf64d0r237958 =bd75a9292er237960 =6777be3446r237961 =b6976af3cdr237962 =a33f5160ebr237963 =676efa4d56r237964 =3ad083f2cbr237965 =d525214b96r237967 =1052042adfr237968 =41af60bdc0r237969 =56409de6c4r237970 =b86942cca4r237971 =41cf9ae1b8r237972 =66811d9817r237974 =afcd3e68a8r237975 =a89d43a2cer237976 =fcf7993d4ar237977 =ab0b15dff8r237978 =4ea24c84fbr237980 =6b3b93fc8br237984 =253c092e56r237985 =2c78f9499cr237990 =9233137390r237993 =f5ed85b2c8r237994 =edcdc5cb6ar237995 =fe0d65bcc6r237996 =82967c0bcdr237997 =73993abb6cr237998 =ec8c491a06r238000 =117f3a66e8r238001 =6c3a7cbe54r238003 =005bf5f8b0r238004 =b7888bd5ear238005 =f5e0674d06r238007 =b6b98c12d5r238008 =d9a08b08acr238011 =c189633586r238012 =25103832b2r238018 =c6174adb16r238019 =05f7d4f508r238022 =8a95a5095dr238024 =cc3f1db34cr238025 =27b0e0b7der238026 =3e785f0ec1r238027 =08bac7b901r238028 =7b677dd986r238032 =490d207be4r238033 =15fe7cf70fr238035 =57cc146595r238036 =84b1a805bbr238038 =1fd101c86dr238044 =157fbac534r238047 =0ceb20d6f4r238049 =d3244b7749r238051 =7e80a67d35r238052 =bde8616229r238053 =6af60ebd57r238054 =d8319655f2r238059 =ebada2c2bcr238062 =b3fdcb3739r238063 =464deacf05r238066 =12baade498r238071 =e00c0df2c4r238073 =7c4f3dcc5er238074 =4e5aa77b3dr238075 =58bf2827d3r238077 =9484f5764cr238078 =4ea4cb3197r238079 =c17da7166dr238080 =01461204b3r238081 =d434a0a1b2r238082 =804c199b75r238084 =b5f8c9b2ecr238086 =762dbd0574r238093 =01fc7e7a0fr238094 =2b6e06c46ar238095 =2077fc4acfr238096 =c1c3e6c7ecr238097 =43a5aa62d4r238099 =a5d0a48209r238101 =24b6dadf2dr238102 =083d79a583r238103 =2b5e37952fr238104 =1de72bda4er238107 =c009e842cbr238108 =f44ed0919cr238110 =4064cb4762r238111 =556ca517abr238112 =8d2d4e2637r238113 =237137532ar238114 =e3ae958f94r238116 =1717728066r238117 =24ad5c9e05r238118 =3755781debr238119 =9ec6380779r238120 =6c44d1fc4er238121 =b976cabda3r238122 =518dcb905er238123 =8ef4be78cdr238124 =3dd00ff834r238125 =f61fb0c9a7r238126 =4d3b6d43ccr238130 =17b7d6bf25r238131 =8ffbb68a86r238132 =675da70da5r238134 =b9f5ce3a43r238137 =84ff6c4ce7r238138 =98e5e8e3f6r238139 =8823110a85r238140 =6cd7f1bca6r238141 =b3eb86c875r238142 =63b75630b4r238143 =68c5b83e12r238144 =948ecae20er238146 =cbb915183er238147 =38aad1c16ar238148 =e2b87dee1er238149 =4da23583b6r238150 =712c27f870r238151 =41a6e6a698r238152 =0cb6d37dear238154 =002c5281efr238155 =0d46e8a420r238156 =ab78d67435r238157 =50c2fe1d5cr238158 =5e435847b0r238159 =e86bc46939r238160 =68e7d22de4r238161 =be38d7cb8cr238162 =f363960679r238163 =504473e6aer238164 =5c84463094r238165 =1826cd69f3r238167 =eac71e23fdr238168 =369611994br238170 =ea3533b4c6r238172 =2224f64c6dr238177 =ef92f29b75r238178 =a274efbc67r238179 =d60caada8br238180 =cfacb30e5dr238181 =d0185f83c6r238185 =88008cb710r238186 =c9739ec212r238187 =7b0f8fc600r238188 =eda9f8aa74r238190 =bda72d8098r238192 =d714fcf5c8r238195 =55fd78065fr238197 =9ed9b04cear238198 =001a2ba63fr238199 =617dbfc31er238201 =262e24f7afr238203 =da68b18db5r238204 =7ff8c5c348r238205 =9ec47b85c7r238208 =b14ebd6a1dr238210 =75775939far238211 =8352b74577r238213 =5a22e848dar238214 =013041ad5cr238217 =a0dd2b4df8r238218 =c068b91ae1r238222 =69dd37580cr238223 =9c24c958f1r238228 =0704171907r238229 =176d1faf6ar238232 =890a876e0er238235 =f580f3683cr238236 =e4af3b4160r238242 =74f44b6c69r238243 =2cc3e0a5ecr238244 =6f49135066r238247 =30244cec4fr238250 =8a7b4ea2adr238251 =ea8a3963b4r238252 =d59f970668r238254 =90b5eb2319r238255 =116e31ffber238261 =1c74d4768ar238264 =13146c7e3br238265 =c756772b8dr238268 =ba7ccd4201r238269 =316f9e05cer238272 =1c0b496636r238275 =7306f3b6f5r238276 =34afa06cf2r238277 =e498b5094cr238287 =299e50237ar238288 =f5b4273058r238289 =63e9bfa72br238292 =bdfc11784br238293 =60c91c28e4r238295 =957830dc8er238301 =078088b790r238302 =3a9cbffdcbr238305 =910146c989r238306 =8be6039072r238311 =baaf8b82c3r238315 =eac1f66427r238317 =a287fe7fa0r238320 =919ce81d38r238322 =d56dcc4243r238325 =b8124ac882r238327 =faf287243ar238328 =1da0f919d5r238329 =7e5614efc2r238330 =b167996819r238331 =899cab6126r238332 =3e6e3602d5r238333 =dbab00a2d4r238335 =df65fd3205r238336 =72be0e4224r238337 =e93c0d6817r238341 =61aecc8c23r238343 =fb421f446er238344 =a052a77187r238346 =3e7c30ada1r238349 =b9d92c6a8dr238350 =3c41ae83f2r238351 =b72f3e0d32r238352 =711655614br238353 =deae59fcebr238356 =8cc212a07er238357 =41cea417far238358 =792e158397r238359 =344593ce6cr238362 =09fe4bf794r238364 =611a2f2322r238366 =95afdd3a07r238369 =636aba5bd1r238371 =49e9f44cb1r238372 =59be554de4r238375 =2c46a37b03r238388 =ba80ee7307r238390 =bd47c6b559r238391 =9dacaea1a1r238396 =4977e92629r238397 =48e2671cb6r238398 =38e3e6a195r238399 =aac3ba8fadr238402 =08e5ec43f4r238403 =bf2ac0e578r238404 =ae2de5d12br238412 =24bccaf9f9r238414 =7f4bf08286r238415 =1af0c40934r238418 =331b719b2br238419 =b97d261a17r238424 =a703f676f7r238427 =8bf191d139r238429 =6952e75aa5r238432 =c4e38f605er238434 =5d25204af9r238439 =95fa1db8f5r238444 =b9ffeb0979r238445 =ca67e337bfr238446 =fd64e0f71ar238447 =3899951490r238448 =4c9279423er238450 =2f6ca834ffr238451 =ef1de3295ar238452 =967f6ad3e1r238453 =58dd70dcedr238456 =bfecc6bdeer238457 =cada158dc3r238461 =24441414a3r238462 =40d9379cd5r238463 =b665c2b05er238465 =48f886b9der238468 =2c7cce70cdr238471 =86c0a109d8r238472 =9417bdcc55r238473 =27565d6185r238477 =7978ab3ad9r238479 =f3344cdffbr238480 =c66c8e7730r238481 =8ecf661ef1r238483 =1348f57925r238485 =117715ca06r238487 =7738ecd62br238491 =34aecd4f40r238492 =db8eb52635r238494 =20e00576afr238501 =cb95e9ef45r238503 =81f64c04d7r238505 =d9f97d149fr238506 =9886da621dr238507 =61897e8564r238508 =588f5f0cbbr238509 =9cc5055248r238511 =6882d57ef2r238513 =fb48de619er238514 =5f50442d79r238515 =47b5a3cbear238516 =e53c28ad5br238518 =354851651cr238519 =3682046086r238520 =b78a66659br238521 =178db50629r238523 =7984aa9d58r238524 =97c5de758ar238531 =c0d1ce55acr238534 =85f66de8ccr238536 =d4b59dcdbar238537 =7e31fe7e20r238539 =e67bd6c248r238540 =2ec7970df4r238543 =60bc0ab340r238552 =fcac2ecd8dr238554 =3379f2492er238555 =3b08750746r238556 =0ace3c01f7r238557 =00703e975er238559 =616c7afb70r238573 =ed0d841f59r238574 =ef056a9111r238575 =16e4a624c4r238576 =83d291ae8br238578 =8493722975r238579 =b2faffd63ar238580 =28afbf2421r238582 =052a7becber238583 =82fdcc0e7fr238584 =9282af9d6cr238586 =2368d54c07r238588 =3bd732d1eer238589 =e97d937576r238591 =f021547d33r238592 =09681051e6r238596 =5b68a837c7r238597 =21a7b73e04r238598 =071c3df378r238602 =9589ff8949r238607 =f00654bc0fr238608 =873d4e200dr238609 =63e7baf8f6r238611 =5760c5fe31r238612 =38a2e49d1cr238617 =cfac75ad0er238619 =f0e3e4cd84r238620 =bb06a52fa7r238627 =bfa311df8cr238632 =dbf84c95fer238633 =3b821159dar238634 =586c0042dar238635 =43d1e87d73r238636 =828f5b807cr238637 =d8018eeac9r238638 =89a133960br238639 =b26a073acbr238640 =3279f2381br238641 =e0d2a2939dr238642 =60dbe0fd0dr238646 =17246b12cfr238647 =15617cdf57r238648 =be43b88faer238650 =da8bb20158r238651 =215bfbf9ear238652 =fa68750e54r238653 =9d945aa625r238654 =08786dc314r238655 =bfe3365795r238658 =63da212749r238659 =32de7d791er238660 =27420dd231r238663 =dbdf667725r238664 =dd25aab4f0r238665 =a651b2236fr238676 =d79915c6fer238680 =876dd978b8r238692 =37041b8d58r238693 =67635abeafr238694 =b3d23d2f42r238695 =d41d04784cr238697 =7b72baf44ar238698 =f8f9476a1br238699 =23125c500fr238700 =64afb8375dr238701 =5a13050628r238702 =75ce6bba4er238703 =481f35f113r238704 =2e20fdbfcbr238705 =13950e506dr238706 =2dd8a67317r238707 =d1678240e5r238708 =223e58b67dr238709 =dd2e39c453r238716 =d84c8ef1ber238723 =5f3a6430d6r238724 =9f63519857r238725 =ec93655812r238726 =f15cab13cbr238727 =dd2a26fccbr238728 =9029910d9fr238729 =8e12b59b13r238730 =64f16f5332r238735 =aa62d8a6b2r238738 =af0e519127r238739 =7d97fc4164r238740 =c2165f1e9fr238741 =84ffd21170r238742 =68f83e59f7r238743 =bbd7cab2b9r238744 =fe195d78ddr238745 =b06d15c70fr238747 =ba9e3285d0r238748 =8a6a249f6br238749 =d997435840r238750 =30e43fe1a9r238751 =872808e946r238753 =1758082f64r238755 =30b5412d92r238756 =e490b7733ar238757 =d4b311fb43r238759 =0cc6b87583r238760 =a509ef9a17r238762 =57e487e92cr238763 =6f9474c1e1r238766 =5a0272c759r238772 =9be6a55ba0r238776 =3fcf5a99cbr238781 =786b471cc6r238783 =1392cf25e2r238784 =a3698105ebr238785 =fa2b7e5cb4r238788 =2c403d6891r238789 =91e4ebaf74r238790 =a116a41be0r238791 =bd84bdb2ber238792 =0b48e9a83cr238793 =fe1391f07dr238795 =d421582e90r238796 =3fcfa4873ar238798 =3ba7d326d5r238799 =574635710fr238800 =398f175c45r238801 =f7e0685b9ar238804 =69aef63931r238805 =a1bedd75a0r238806 =61f49542d7r238807 =77c7578426r238808 =caa40ec228r238809 =82fa06895er238810 =aa9e1c528br238811 =d929045eb5r238813 =a5f14070far238814 =ad601b6b90r238815 =fa82cb6244r238817 =01cf1d3ef3r238818 =1e7e9b1881r238821 =6b35bec8efr238824 =9751e35f20r238829 =330e5f16d1r238830 =ccbc17f896r238834 =6628cb50bdr238838 =1145b66434r238842 =871beb8dd7r238843 =5a04f4af36r238844 =6c55f8dda7r238853 =31ed6b767br238854 =16fb1632a1r238858 =33d75a269cr238863 =92a1dad6d1r238864 =569f382a46r238865 =581e255b1fr238866 =66774f6700r238867 =6af0f89f37r238868 =4cc59a13c7r238881 =8fadf8f4d3r238882 =e9609875eer238883 =f73780ec1ar238884 =531270e663r238887 =0ba7ba487dr238888 =4e94cb75e5r238889 =9c8ebbf969r238890 =2bff0d30f8r238891 =287f68d654r238894 =1a2a0ee8a0r238895 =a3a2cab504r238897 =cbf5311a34r238898 =8c7a0fd91ar238899 =201a551929r238900 =a0bcb4184br238903 =60e0898710r238906 =dd5cde6e60r238908 =aa17b5dd2dr238915 =682b194cd6r238916 =49659f6378r238917 =23dc4bbf1dr238918 =10eb2dd9dfr238919 =fc28da72f0r238921 =b0e7aeb694r238923 =ce375dc63ar238925 =a57c862c9dr238932 =9bc6d84867r238933 =e017a69163r238935 =e942914d29r238939 =7953382dcer238940 =7745dac9d0r238941 =001b032fear238943 =57c68eeefer238947 =4009e89061r238949 =0a999e4d3ar238951 =6da0e02282r238952 =4ce10b56e6r238953 =5d42ddcd1er238958 =b743320bb3r238959 =696c93c900r238975 =96fdaa4f50r238978 =a41438c5d8r238979 =2b9f4dc654r238980 =f3857c334fr238982 =5eb7481d03r238983 =40ec40a179r238985 =4c7b7b29a2r238996 =c212856f78r238999 =8c009e3943r239001 =e4e5cf5a66r239003 =dc967a97dfr239006 =d90fd082f9r239010 =64a82a3d70r239011 =79fa3fc84ar239012 =cddcabadf2r239014 =693d40eec0r239015 =bcca616029r239016 =1bbb64b206r239017 =7464cac572r239019 =7c290adeb4r239021 =40c791eda9r239022 =44bc71549er239023 =71bb0e10c4r239026 =0880fe5997r239029 =d34142ebf7r239034 =85e64ec630r239035 =545c30e82cr239036 =6ff6fc6055r239037 =cd2647f4fdr239039 =45edf27ed7r239040 =7ec7c7d865r239041 =523b2cdb29r239042 =0f898d59f8r239043 =c71a3797a6r239044 =800411deear239045 =9f299abc05r239048 =bebb0b5a34r239049 =e0d4034b76r239051 =a1f2f389f6r239052 =013ef59713r239053 =35cc03a1ear239056 =b0ed8b72efr239058 =3e2318fbb5r239062 =15df8bebdcr239065 =1b77d22c66r239068 =3391374181r239069 =65cae0d169r239070 =c07ee0c4ffr239071 =ac73683b10r239074 =23fd513829r239075 =d7eb7d7fb1r239076 =fbfbe05819r239077 =00faba70ccr239078 =1d4ec71798r239079 =08a382531cr239080 =7e699dce03r239081 =5400980e1er239082 =81fb217d91r239083 =711ff5004ar239084 =aa48bf4e1cr239085 =3eb860ab87r239087 =0d9335eda7r239088 =ea36630528r239089 =a8dc0ee520r239090 =2cdee49937r239091 =a520577e7er239092 =4dbd603825r239094 =7c65b1bfb2r239095 =60b4c7fc30r239096 =5deb54f199r239097 =083f0122f0r239099 =6782fc61car239100 =834d242f6ar239102 =4e8f68f245r239103 =3a665e02dar239105 =c9f2b5d535r239106 =468b904422r239107 =cc68225e0cr239108 =bc81286cacr239109 =62d21d2b1ar239110 =27d60c99f7r239111 =3e407efb8br239113 =1ea35c2d52r239114 =bb3883dfbar239115 =b0b8cde9d4r239116 =196340cc6cr239117 =679607868fr239118 =e2f87598car239119 =eafe465f2ar239120 =71c4d5dcbfr239121 =22a5d492efr239124 =83f903f352r239125 =85529a57b4r239129 =0a64b6de98r239136 =8beac08b74r239139 =2a89c94df6r239141 =edbc0df974r239142 =406e5ea598r239143 =47dfcb7745r239144 =b349e0f1f1r239145 =dbaee6daddr239146 =841f3dbae8r239147 =b4435accd5r239150 =c1c9bc1df7r239151 =272d7fdf42r239155 =ed3a7f5f4cr239157 =474d2e0f05r239158 =cdb8c729f2r239159 =a8769fd4b2r239161 =750b351b76r239162 =b6ebf678acr239163 =8a5883aaber239164 =862b2ad204r239165 =cb66dc70e3r239166 =485adcac20r239167 =5a0d6b758cr239168 =c1233a84b2r239169 =f5c04a9da7r239171 =46216f7f99r239172 =fffd691439r239174 =aa4466db93r239175 =b539fba9d7r239185 =527bb619d1r239186 =0f58c38ebdr239189 =dfbf8971car239190 =7bef4c48d6r239192 =a37c524912r239198 =9ccf07fb89r239200 =c7968ac7b5r239204 =02890a5cf3r239205 =77411bdfe3r239206 =c052f54559r239207 =33d0763bd1r239208 =8e29f136cfr239209 =32d99f93e4r239210 =d032911655r239211 =4fb638b527r239214 =dcb11d3206r239215 =b21b529990r239217 =e46e8af4d7r239218 =68081f41far239227 =2ca8f0f5d6r239228 =ce986b6bc0r239229 =134cb22902r239231 =86a28d87b1r239240 =4514db2bfbr239241 =14c78fb9b1r239245 =06b2485912r239246 =20d6747043r239247 =df70939242r239248 =698d0ae542r239249 =030cc6948ar239250 =b241325294r239251 =aa8479458er239252 =43421abda8r239253 =bd795464f4r239254 =7dcbed058fr239257 =4c4f0921dcr239259 =00040a8e8fr239260 =4e8236ed75r239261 =4d1a5272ecr239262 =d9ac3ec939r239263 =e18e3a1027r239264 =30d36cc8dfr239265 =8cc8dbc062r239274 =0547b62a14r239275 =904db1100fr239276 =6af266fd88r239277 =095bfde743r239278 =ee2e3d0eb9r239279 =3120bcb0der239282 =3148e98284r239283 =965c107356r239285 =f60ff6bdf6r239286 =f57b36041br239291 =43be1d53d1r239293 =d72b357107r239295 =a420a14276r239299 =1328b67dd1r239300 =17e24879cbr239301 =f8aad6c1efr239302 =d48ce2c34fr239303 =7b4fbad146r239305 =298222a930r239307 =838271c858r239308 =7c40b1a7bcr239309 =b0d6c659b7r239311 =62f764a6c9r239312 =f560b88d7cr239313 =a335f333ber239314 =e25e889c7cr239315 =cae8bc4504r239316 =d3869ee8d2r239317 =1a8319cbefr239318 =e2101ba7b5r239324 =d354befbbbr239325 =fa6bc2e94dr239327 =9ebaf8ce67r239329 =f7e74363b8r239333 =8176f933d9r239335 =279ef837e8r239336 =4332f869bfr239353 =1666977cd0r239355 =b65591326er239357 =dea5078cder239361 =38a2b24c12r239367 =04ed4447eer239368 =4e04297ac3r239369 =d386615ed3r239370 =d99ce2f630r239377 =0f59d850far239378 =d2f17c4e2br239379 =cfd8f11d48r239380 =b4863a99c9r239383 =657c697363r239384 =af72cb1b94r239390 =792f79f4a6r239391 =6f9520411cr239392 =07ce69ae7dr239395 =4b0e9f114cr239396 =dc2af2605fr239397 =695a997ef2r239399 =ff7ef6c5c9r239403 =22debdcab6r239405 =c154887856r239409 =eae4673c2fr239410 =e8bd930eedr239411 =a0c9e11a2br239412 =8e8c4b5615r239420 =6eee2375d9r239422 =92a42eead2r239423 =79e04c5844r239424 =7178ff1974r239425 =ebfbf931a2r239427 =0e3246a86fr239428 =5c8a22f11br239429 =38f72d04ear239430 =ea8e85d925r239431 =a96fc7ab00r239432 =e2e26b486dr239433 =bdcbc426afr239434 =1d815cac84r239435 =95355e6498r239437 =12f81b4639r239438 =8478c82b28r239439 =cbe2100f7er239440 =c11f1d8ae8r239441 =dbb0802eb6r239442 =b1337aba53r239443 =be1349596dr239445 =a8c0a9b042r239448 =c8e72e9126r239449 =6d7e69b227r239451 =839f83e1e3r239455 =f095095d4ar239456 =e11157c668r239459 =a6f2be013ar239460 =189930760dr239464 =03c060b6d4r239465 =fff114c890r239467 =4d13f315d1r239472 =544d686bc0r239473 =29a533515fr239475 =d5254aba82r239477 =c196bfecd6r239478 =708de57feer239479 =881c8e0c9ar239480 =b78ea510c1r239482 =3de99b70aar239484 =bb79423d0fr239486 =c826b54b52r239488 =6e5bbb57e4r239489 =e0e42bb51fr239490 =0aae8ce09fr239491 =0fa7dc6b36r239492 =33102d2faar239493 =ea423677car239495 =294c7822a0r239497 =e0d6eef952r239501 =5a118340ddr239502 =7963762fcer239505 =f7d6501d1dr239508 =a2cdb8ca59r239509 =44226ffc19r239510 =3b8d35fb8dr239514 =442f620296r239515 =7b35bb4e76r239519 =938cba6ae3r239520 =d09e8beec3r239522 =9d115effdfr239523 =f24e4e46cdr239529 =89f93ead2ar239532 =6b71bf10b6r239533 =6fcf906bb0r239534 =a79d4da0f1r239535 =4bedcbcab3r239538 =f0e3a9c174r239539 =564ff6478cr239540 =b1d220c21ar239541 =b0cbcd2362r239543 =cd354fa84dr239544 =688e7b3049r239545 =29edabcc44r239550 =7356846f65r239551 =bc482286fcr239552 =6c56decee0r239553 =fd83cb21cer239554 =4ddb0ced90r239555 =5a78f2db38r239556 =3238e64ef4r239559 =6f69f4074fr239560 =6170134a1fr239561 =2e960cb2c4r239564 =5182687026r239565 =68e51493f7r239566 =5e9819c5bdr239567 =3e16bd3aafr239568 =d48b38e9ecr239570 =1966aee2fer239571 =341ba392d9r239574 =2bd0221fa4r239584 =c70c41a688r239585 =7168a91de7r239586 =0fd41495efr239587 =2cb369d538r239589 =e0de59ac91r239590 =ba74b27ed1r239596 =3b50e96994r239598 =5ac49ca9d6r239599 =14d0411acbr239601 =78b2ff76d9r239602 =a66840f18dr239603 =3bc62ab179r239612 =cb2dfa6478r239616 =0433a64174r239618 =18dd79c396r239620 =cff40fc84ar239621 =aaa3fa61d2r239622 =8b351e4040r239623 =a6ff22119fr239624 =c0bd42523ar239626 =51be69023dr239627 =923bd1da56r239628 =8040b1e469r239629 =d25af8c396r239631 =2086b2e76ar239632 =f52f043d3eDone rebuilding /home/tstellar/llvm/.git/svn/refs/remotes/origin/master/.rev_map.91177308-0d34-0410-b5e6-96231b3b80d8 ------------------------------------------------------------------------ r237132 | thomas.stellard | 2015-05-12 10:18:11 -0400 (Tue, 12 May 2015) | 5 lines R600/SI: Replace TRI->getRegClass(Reg) with TRI->getPhysRegClass(Reg) TRI->getRegClass() takes a register class ID, not a register. We were using this incorrectly in a few places. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_36@240281 91177308-0d34-0410-b5e6-96231b3b80d8
286 lines
8.4 KiB
C++
286 lines
8.4 KiB
C++
//===-- SIFoldOperands.cpp - Fold operands --- ----------------------------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
/// \file
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
|
|
#include "AMDGPU.h"
|
|
#include "AMDGPUSubtarget.h"
|
|
#include "SIInstrInfo.h"
|
|
#include "llvm/CodeGen/LiveIntervalAnalysis.h"
|
|
#include "llvm/CodeGen/MachineDominators.h"
|
|
#include "llvm/CodeGen/MachineFunctionPass.h"
|
|
#include "llvm/CodeGen/MachineInstrBuilder.h"
|
|
#include "llvm/CodeGen/MachineRegisterInfo.h"
|
|
#include "llvm/IR/LLVMContext.h"
|
|
#include "llvm/IR/Function.h"
|
|
#include "llvm/Support/Debug.h"
|
|
#include "llvm/Target/TargetMachine.h"
|
|
|
|
#define DEBUG_TYPE "si-fold-operands"
|
|
using namespace llvm;
|
|
|
|
namespace {
|
|
|
|
class SIFoldOperands : public MachineFunctionPass {
|
|
public:
|
|
static char ID;
|
|
|
|
public:
|
|
SIFoldOperands() : MachineFunctionPass(ID) {
|
|
initializeSIFoldOperandsPass(*PassRegistry::getPassRegistry());
|
|
}
|
|
|
|
bool runOnMachineFunction(MachineFunction &MF) override;
|
|
|
|
const char *getPassName() const override {
|
|
return "SI Fold Operands";
|
|
}
|
|
|
|
void getAnalysisUsage(AnalysisUsage &AU) const override {
|
|
AU.addRequired<MachineDominatorTree>();
|
|
AU.setPreservesCFG();
|
|
MachineFunctionPass::getAnalysisUsage(AU);
|
|
}
|
|
};
|
|
|
|
struct FoldCandidate {
|
|
MachineInstr *UseMI;
|
|
unsigned UseOpNo;
|
|
MachineOperand *OpToFold;
|
|
uint64_t ImmToFold;
|
|
|
|
FoldCandidate(MachineInstr *MI, unsigned OpNo, MachineOperand *FoldOp) :
|
|
UseMI(MI), UseOpNo(OpNo) {
|
|
|
|
if (FoldOp->isImm()) {
|
|
OpToFold = nullptr;
|
|
ImmToFold = FoldOp->getImm();
|
|
} else {
|
|
assert(FoldOp->isReg());
|
|
OpToFold = FoldOp;
|
|
}
|
|
}
|
|
|
|
bool isImm() const {
|
|
return !OpToFold;
|
|
}
|
|
};
|
|
|
|
} // End anonymous namespace.
|
|
|
|
INITIALIZE_PASS_BEGIN(SIFoldOperands, DEBUG_TYPE,
|
|
"SI Fold Operands", false, false)
|
|
INITIALIZE_PASS_DEPENDENCY(MachineDominatorTree)
|
|
INITIALIZE_PASS_END(SIFoldOperands, DEBUG_TYPE,
|
|
"SI Fold Operands", false, false)
|
|
|
|
char SIFoldOperands::ID = 0;
|
|
|
|
char &llvm::SIFoldOperandsID = SIFoldOperands::ID;
|
|
|
|
FunctionPass *llvm::createSIFoldOperandsPass() {
|
|
return new SIFoldOperands();
|
|
}
|
|
|
|
static bool isSafeToFold(unsigned Opcode) {
|
|
switch(Opcode) {
|
|
case AMDGPU::V_MOV_B32_e32:
|
|
case AMDGPU::V_MOV_B32_e64:
|
|
case AMDGPU::V_MOV_B64_PSEUDO:
|
|
case AMDGPU::S_MOV_B32:
|
|
case AMDGPU::S_MOV_B64:
|
|
case AMDGPU::COPY:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
static bool updateOperand(FoldCandidate &Fold,
|
|
const TargetRegisterInfo &TRI) {
|
|
MachineInstr *MI = Fold.UseMI;
|
|
MachineOperand &Old = MI->getOperand(Fold.UseOpNo);
|
|
assert(Old.isReg());
|
|
|
|
if (Fold.isImm()) {
|
|
Old.ChangeToImmediate(Fold.ImmToFold);
|
|
return true;
|
|
}
|
|
|
|
MachineOperand *New = Fold.OpToFold;
|
|
if (TargetRegisterInfo::isVirtualRegister(Old.getReg()) &&
|
|
TargetRegisterInfo::isVirtualRegister(New->getReg())) {
|
|
Old.substVirtReg(New->getReg(), New->getSubReg(), TRI);
|
|
return true;
|
|
}
|
|
|
|
// FIXME: Handle physical registers.
|
|
|
|
return false;
|
|
}
|
|
|
|
static bool tryAddToFoldList(std::vector<FoldCandidate> &FoldList,
|
|
MachineInstr *MI, unsigned OpNo,
|
|
MachineOperand *OpToFold,
|
|
const SIInstrInfo *TII) {
|
|
if (!TII->isOperandLegal(MI, OpNo, OpToFold)) {
|
|
// Operand is not legal, so try to commute the instruction to
|
|
// see if this makes it possible to fold.
|
|
unsigned CommuteIdx0;
|
|
unsigned CommuteIdx1;
|
|
bool CanCommute = TII->findCommutedOpIndices(MI, CommuteIdx0, CommuteIdx1);
|
|
|
|
if (CanCommute) {
|
|
if (CommuteIdx0 == OpNo)
|
|
OpNo = CommuteIdx1;
|
|
else if (CommuteIdx1 == OpNo)
|
|
OpNo = CommuteIdx0;
|
|
}
|
|
|
|
if (!CanCommute || !TII->commuteInstruction(MI))
|
|
return false;
|
|
|
|
if (!TII->isOperandLegal(MI, OpNo, OpToFold))
|
|
return false;
|
|
}
|
|
|
|
FoldList.push_back(FoldCandidate(MI, OpNo, OpToFold));
|
|
return true;
|
|
}
|
|
|
|
bool SIFoldOperands::runOnMachineFunction(MachineFunction &MF) {
|
|
MachineRegisterInfo &MRI = MF.getRegInfo();
|
|
const SIInstrInfo *TII =
|
|
static_cast<const SIInstrInfo *>(MF.getSubtarget().getInstrInfo());
|
|
const SIRegisterInfo &TRI = TII->getRegisterInfo();
|
|
|
|
for (MachineFunction::iterator BI = MF.begin(), BE = MF.end();
|
|
BI != BE; ++BI) {
|
|
|
|
MachineBasicBlock &MBB = *BI;
|
|
MachineBasicBlock::iterator I, Next;
|
|
for (I = MBB.begin(); I != MBB.end(); I = Next) {
|
|
Next = std::next(I);
|
|
MachineInstr &MI = *I;
|
|
|
|
if (!isSafeToFold(MI.getOpcode()))
|
|
continue;
|
|
|
|
MachineOperand &OpToFold = MI.getOperand(1);
|
|
bool FoldingImm = OpToFold.isImm();
|
|
|
|
// FIXME: We could also be folding things like FrameIndexes and
|
|
// TargetIndexes.
|
|
if (!FoldingImm && !OpToFold.isReg())
|
|
continue;
|
|
|
|
// Folding immediates with more than one use will increase program side.
|
|
// FIXME: This will also reduce register usage, which may be better
|
|
// in some cases. A better heuristic is needed.
|
|
if (FoldingImm && !TII->isInlineConstant(OpToFold) &&
|
|
!MRI.hasOneUse(MI.getOperand(0).getReg()))
|
|
continue;
|
|
|
|
// FIXME: Fold operands with subregs.
|
|
if (OpToFold.isReg() &&
|
|
(!TargetRegisterInfo::isVirtualRegister(OpToFold.getReg()) ||
|
|
OpToFold.getSubReg()))
|
|
continue;
|
|
|
|
std::vector<FoldCandidate> FoldList;
|
|
for (MachineRegisterInfo::use_iterator
|
|
Use = MRI.use_begin(MI.getOperand(0).getReg()), E = MRI.use_end();
|
|
Use != E; ++Use) {
|
|
|
|
MachineInstr *UseMI = Use->getParent();
|
|
const MachineOperand &UseOp = UseMI->getOperand(Use.getOperandNo());
|
|
|
|
// FIXME: Fold operands with subregs.
|
|
if (UseOp.isReg() && UseOp.getSubReg() && OpToFold.isReg()) {
|
|
continue;
|
|
}
|
|
|
|
APInt Imm;
|
|
|
|
if (FoldingImm) {
|
|
unsigned UseReg = UseOp.getReg();
|
|
const TargetRegisterClass *UseRC
|
|
= TargetRegisterInfo::isVirtualRegister(UseReg) ?
|
|
MRI.getRegClass(UseReg) :
|
|
TRI.getPhysRegClass(UseReg);
|
|
|
|
Imm = APInt(64, OpToFold.getImm());
|
|
|
|
// Split 64-bit constants into 32-bits for folding.
|
|
if (UseOp.getSubReg()) {
|
|
if (UseRC->getSize() != 8)
|
|
continue;
|
|
|
|
if (UseOp.getSubReg() == AMDGPU::sub0) {
|
|
Imm = Imm.getLoBits(32);
|
|
} else {
|
|
assert(UseOp.getSubReg() == AMDGPU::sub1);
|
|
Imm = Imm.getHiBits(32);
|
|
}
|
|
}
|
|
|
|
// In order to fold immediates into copies, we need to change the
|
|
// copy to a MOV.
|
|
if (UseMI->getOpcode() == AMDGPU::COPY) {
|
|
unsigned DestReg = UseMI->getOperand(0).getReg();
|
|
const TargetRegisterClass *DestRC
|
|
= TargetRegisterInfo::isVirtualRegister(DestReg) ?
|
|
MRI.getRegClass(DestReg) :
|
|
TRI.getPhysRegClass(DestReg);
|
|
|
|
unsigned MovOp = TII->getMovOpcode(DestRC);
|
|
if (MovOp == AMDGPU::COPY)
|
|
continue;
|
|
|
|
UseMI->setDesc(TII->get(MovOp));
|
|
}
|
|
}
|
|
|
|
const MCInstrDesc &UseDesc = UseMI->getDesc();
|
|
|
|
// Don't fold into target independent nodes. Target independent opcodes
|
|
// don't have defined register classes.
|
|
if (UseDesc.isVariadic() ||
|
|
UseDesc.OpInfo[Use.getOperandNo()].RegClass == -1)
|
|
continue;
|
|
|
|
if (FoldingImm) {
|
|
MachineOperand ImmOp = MachineOperand::CreateImm(Imm.getSExtValue());
|
|
tryAddToFoldList(FoldList, UseMI, Use.getOperandNo(), &ImmOp, TII);
|
|
continue;
|
|
}
|
|
|
|
tryAddToFoldList(FoldList, UseMI, Use.getOperandNo(), &OpToFold, TII);
|
|
|
|
// FIXME: We could try to change the instruction from 64-bit to 32-bit
|
|
// to enable more folding opportunites. The shrink operands pass
|
|
// already does this.
|
|
}
|
|
|
|
for (FoldCandidate &Fold : FoldList) {
|
|
if (updateOperand(Fold, TRI)) {
|
|
// Clear kill flags.
|
|
if (!Fold.isImm()) {
|
|
assert(Fold.OpToFold && Fold.OpToFold->isReg());
|
|
Fold.OpToFold->setIsKill(false);
|
|
}
|
|
DEBUG(dbgs() << "Folded source from " << MI << " into OpNo " <<
|
|
Fold.UseOpNo << " of " << *Fold.UseMI << '\n');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|