Jump to page: 1 2
Thread overview
String Switch Lowering
Jan 25, 2018
Benjamin Thaut
Jan 25, 2018
H. S. Teoh
Jan 25, 2018
Jonathan M Davis
Jan 25, 2018
Benjamin Thaut
Jan 25, 2018
H. S. Teoh
Jan 27, 2018
Walter Bright
Jan 27, 2018
Benjamin Thaut
Jan 27, 2018
Kagamin
Jan 27, 2018
timotheecour
Jan 27, 2018
Kagamin
Jan 27, 2018
Timothee Cour
Jan 27, 2018
H. S. Teoh
Jan 28, 2018
Kagamin
Jan 28, 2018
Seb
Jan 27, 2018
Timothee Cour
Jan 27, 2018
H. S. Teoh
Jan 28, 2018
Benjamin Thaut
January 25, 2018
_D6object__T8__switchTyaVxAyaa7_43535436434454VxQwa7_45535435454454VxQBra7_4574632f474d54VxQCna7_4d5354374d4454VxQDja7_50535438504454VxQEfa9_417369612f4164656eVxQFfa9_417369612f42616b75VxQGfa9_417369612f44696c69VxQHfa9_417369612f486f7664VxQIfa9_417369612f4f6d736bVxQJfa9_417369612f4f72616cVxQKfa9_4574632f474d542b31VxQLfa9_4574632f474d542b32VxQMfa9_4574632f474d542b33VxQNfa9_4574632f474d542b34VxQOfa9_4574632f474d542b35VxQPfa9_4574632f474d542b36VxQQfa9_4574632f474d542b37VxQRfa9_4574632f474d542b38VxQSfa9_4574632f474d542b39VxQTfa9_4574632f474d542d31VxQUfa9_4574632f474d542d32VxQVfa9_4574632f474d542d33VxQWfa9_4574632f474d542d34VxQXfa9_4574632f474d542d35VxQYfa9_4574632f474d542d36VxQZfa9_4574632f474d542d37VxQBAfa9_4574632f474d542d38VxQBBga9_4574632f474d542d39VxQBCha10_417369612f416d6d616eVxQBDla10_417369612f4171746175VxQBEpa10_417369612f4368697461VxQBFta10_417369612f4468616b61VxQBGxa10_417369612f4475626169VxQBIba10_417369612f4b6162756cVxQBJfa10_417369612f4d61636175VxQBKja10_417369612f5161746172VxQBLna10_417369612f53656f756cVxQBMra10_417369612f546f6b796fVxQBNva10_417369612f546f6d736bVxQBOza10_4574632f474d542b3130VxQBQda10_4574632f474d542b3131VxQBRha10_4574632f474d542b3132VxQBSla10_4574632f474d542d3130VxQBTpa10_4574632f474d542d3131VxQBUta10_4574632f474d542d3132VxQBVxa10_4574632f474d542d3133VxQBXba10_4574632f474d542d3134VxQBYfa11_4166726963612f4a756261VxQBZla11_4166726963612f4c6f6d65VxQCAra11_417369612f416c6d617479VxQCBxa11_417369612f416e61647972VxQCDda11_417369612f4171746f6265VxQCEja11_417369612f426569727574VxQCFpa11_417369612f4272756e6569VxQCGva11_417369612f486562726f6eVxQCIba11_417369612f4b7577616974VxQCJha11_417369612f4d616e696c61VxQCKna11_417369612f4d7573636174VxQCLta11_417369612f526979616468VxQCMza11_417369612f536169676f6eVxQCOfa11_417369612f546169706569VxQCPla11_417369612f54656872616eVxQCQra11_417369612f5572756d7169VxQCRxa11_4575726f70652f4b696576VxQCTda11_4575726f70652f4f736c6fVxQCUja11_4575726f70652f52696761VxQCVpa11_4575726f70652f526f6d65VxQCWva11_496e6469616e2f4d616865VxQCYba12_4166726963612f4163637261VxQCZja12_4166726963612f436169726fVxQDAra12_4166726963612f4365757461VxQDBza12_4166726963612f44616b6172VxQDDha12_4166726963612f4c61676f73VxQDEpa12_4166726963612f54756e6973VxQDFxa12_416d65726963612f4164616bVxQDHfa12_416d65726963612f4c696d61VxQDIna12_416d65726963612f4e6f6d65VxQDJva12_417369612f42616768646164VxQDLda12_417369612f4261687261696eVxQDMla12_417369612f42616e676b6f6bVxQDNta12_417369612f4261726e61756cVxQDPba12_417369612f426973686b656bVxQDQja12_417369612f436f6c6f6d626fVxQDRra12_417369612f49726b7574736bVxQDSza12_417369612f4a616b61727461VxQDUha12_417369612f4b617261636869VxQDVpa12_417369612f4b756368696e67VxQDWxa12_417369612f4d61676164616eVxQDYfa12_417369612f4e69636f736961VxQDZna12_417369612f52616e676f6f6eVxQEAva12_417369612f5462696c697369VxQECda12_417369612f5468696d706875VxQEDla12_417369612f59616b7574736bVxQEEta12_417369612f5965726576616eVxQEGba12_4575726f70652f4d616c7461VxQEHja12_4575726f70652f4d696e736bVxQEIra12_4575726f70652f5061726973VxQEJza12_4575726f70652f536f666961VxQELha12_4575726f70652f566164757aVxQEMpa12_496e6469616e2f436f636f73VxQENxa12_506163696669632f41706961VxQEPfa12_506163696669632f46696a69VxQEQna12_506163696669632f4775616dVxQERva12_506163696669632f4e697565VxQETda12_506163696669632f5472756bVxQEUla12_506163696669632f57616b65VxQEVta13_4166726963612f41736d657261VxQEXda13_4166726963612f42616d616b6fVxQEYna13_4166726963612f42616e677569VxQEZxa13_4166726963612f42616e6a756cVxQFBha13_4166726963612f426973736175VxQFCra13_4166726963612f446f75616c61VxQFEba13_4166726963612f486172617265VxQFFla13_4166726963612f4b6967616c69VxQFGva13_4166726963612f4c75616e6461VxQFIfa13_4166726963612f4c7573616b61VxQFJpa13_4166726963612f4d616c61626fVxQFKza13_4166726963612f4d617075746fVxQFMja13_4166726963612f4d6173657275VxQFNta13_4166726963612f4e69616d6579VxQFPda13_416d65726963612f4172756261VxQFQna13_416d65726963612f4261686961VxQFRxa13_416d65726963612f42656c656dVxQFTha13_416d65726963612f426f697365VxQFUra13_416d65726963612f4a756a7579VxQFWba13_416d65726963612f5369746b61VxQFXla13_416d65726963612f5468756c65VxQFYva13_417369612f4173686761626174VxQGAfa13_417369612f43616c6375747461VxQGBpa13_417369612f44616d6173637573VxQGCza13_417369612f44757368616e6265VxQGEja13_417369612f4a61796170757261VxQGFta13_417369612f4b61746d616e6475VxQGHda13_417369612f4b68616e64796761VxQGIna13_417369612f4d616b6173736172VxQGJxa13_417369612f53616b68616c696eVxQGLha13_417369612f5368616e67686169VxQGMra13_417369612f546173686b656e74VxQGOba13_417369612f5573742d4e657261VxQGPla13_4575726f70652f417468656e73VxQGQva13_4575726f70652f4265726c696eVxQGSfa13_4575726f70652f4475626c696eVxQGTpa13_4575726f70652f4a6572736579VxQGUza13_4575726f70652f4c6973626f6eVxQGWja13_4575726f70652f4c6f6e646f6eVxQGXta13_4575726f70652f4d6164726964VxQGZda13_4575726f70652f4d6f6e61636fVxQHAna13_4575726f70652f4d6f73636f77VxQHBxa13_4575726f70652f507261677565VxQHDha13_4575726f70652f53616d617261VxQHEra13_4575726f70652f536b6f706a65VxQHGba13_4575726f70652f546972616e65VxQHHla13_4575726f70652f5669656e6e61VxQHIva13_4575726f70652f576172736177VxQHKfa13_4575726f70652f5a6167726562VxQHLpa13_4575726f70652f5a7572696368VxQHMza13_496e6469616e2f436861676f73VxQHOja13_496e6469616e2f436f6d6f726fVxQHPta13_506163696669632f4566617465VxQHRda13_506163696669632f4e61757275VxQHSna13_506163696669632f50616c6175VxQHTxa14_4166726963612f416269646a616eVxQHVja14_4166726963612f416c6769657273VxQHWva14_4166726963612f436f6e616b7279VxQHYha14_4166726963612f4b616d70616c61VxQHZta14_4166726963612f4d626162616e65VxQIBfa14_4166726963612f4e6169726f6269VxQICra14_4166726963612f547269706f6c69VxQIEda14_416d65726963612f42656c697a65VxQIFpa14_416d65726963612f426f676f7461VxQIHba14_416d65726963612f43616e63756eVxQIIna14_416d65726963612f4361796d616eVxQIJza14_416d65726963612f437569616261VxQILla14_416d65726963612f446177736f6eVxQIMxa14_416d65726963612f44656e766572VxQIOja14_416d65726963612f477579616e61VxQIPva14_416d65726963612f486176616e61VxQIRha14_416d65726963612f496e7576696bVxQISta14_416d65726963612f4a756e656175VxQIUfa14_416d65726963612f4c615f50617aVxQIVra14_416d65726963612f4d616365696fVxQIXda14_416d65726963612f4d616e617573VxQIYpa14_416d65726963612f4d6572696461VxQJAba14_416d65726963612f4e6173736175VxQJBna14_416d65726963612f50616e616d61VxQJCza14_416d65726963612f526563696665VxQJEla14_416d65726963612f526567696e61VxQJFxa14_417369612f486f6e675f4b6f6e67VxQJHja14_417369612f4a65727573616c656dVxQJIva14_417369612f4b616d636861746b61VxQJKha14_417369612f506f6e7469616e616bVxQJLta14_417369612f50796f6e6779616e67VxQJNfa14_417369612f51797a796c6f726461VxQJOra14_417369612f53616d61726b616e64VxQJQda14_417369612f53696e6761706f7265VxQJRpa14_417369612f5669656e7469616e65VxQJTba14_4575726f70652f416e646f727261VxQJUna14_4575726f70652f54616c6c696e6eVxQJVza14_4575726f70652f5661746963616eVxQJXla14_4575726f70652f56696c6e697573VxQJYxa14_496e6469616e2f4d61796f747465VxQKAja14_496e6469616e2f5265756e696f6eVxQKBva14_506163696669632f456173746572VxQKDha14_506163696669632f4b6f73726165VxQKEta14_506163696669632f4d616a75726fVxQKGfa14_506163696669632f4d6964776179VxQKHra14_506163696669632f4e6f756d6561VxQKJda14_506163696669632f506f6e617065VxQKKpa14_506163696669632f53616970616eVxQKMba14_506163696669632f546168697469VxQKNna14_506163696669632f546172617761VxQKOza14_506163696669632f57616c6c6973VxQKQla15_4166726963612f426c616e74797265VxQKRza15_4166726963612f446a69626f757469VxQKTna15_4166726963612f456c5f416169756eVxQKVba15_4166726963612f46726565746f776eVxQKWpa15_4166726963612f4761626f726f6e65VxQKYda15_4166726963612f4b686172746f756dVxQKZra15_4166726963612f4b696e7368617361VxQLBfa15_4166726963612f4d6f6e726f766961VxQLCta15_4166726963612f4e646a616d656e61VxQLEha15_4166726963612f53616f5f546f6d65VxQLFva15_4166726963612f57696e64686f656bVxQLHja15_416d65726963612f416e7469677561VxQLIxa15_416d65726963612f43617261636173VxQLKla15_416d65726963612f436179656e6e65VxQLLza15_416d65726963612f4368696361676fVxQLNna15_416d65726963612f436f72646f6261VxQLPba15_416d65726963612f43726573746f6eVxQLQpa15_416d65726963612f4375726163616fVxQLSda15_416d65726963612f446574726f6974VxQLTra15_416d65726963612f476f6474686162VxQLVfa15_416d65726963612f4772656e616461VxQLWta15_416d65726963612f48616c69666178VxQLYha15_416d65726963612f4971616c756974VxQLZva15_416d65726963612f4a616d61696361VxQMBja15_416d65726963612f4d616e61677561VxQMCxa15_416d65726963612f4d617269676f74VxQMEla15_416d65726963612f4d656e646f7a61VxQMFza15_416d65726963612f4d6f6e63746f6eVxQMHna15_416d65726963612f4e697069676f6eVxQMJba15_416d65726963612f4e6f726f6e6861VxQMKpa15_416d65726963612f4f6a696e616761VxQMMda15_416d65726963612f50686f656e6978VxQMNra15_416d65726963612f54696a75616e61VxQMPfa15_416d65726963612f546f726f6e746fVxQMQta15_416d65726963612f546f72746f6c61VxQMSha15_416d65726963612f59616b75746174VxQMTva15_417369612f43686f6962616c73616eVxQMVja15_417369612f50686e6f6d5f50656e68VxQMWxa15_41746c616e7469632f417a6f726573VxQMYla15_41746c616e7469632f43616e617279VxQMZza15_41746c616e7469632f466165726f65VxQNBna15_4175737472616c69612f4575636c61VxQNDba15_4175737472616c69612f5065727468VxQNEpa15_4575726f70652f42656c6772616465VxQNGda15_4575726f70652f4272757373656c73VxQNHra15_4575726f70652f4275646170657374VxQNJfa15_4575726f70652f427573696e67656eVxQNKta15_4575726f70652f43686973696e6175VxQNMha15_4575726f70652f477565726e736579VxQNNva15_4575726f70652f48656c73696e6b69VxQNPja15_4575726f70652f497374616e62756cVxQNQxa15_4575726f70652f536172616a65766fVxQNSla15_4575726f70652f557a68676f726f64VxQNTza15_496e6469616e2f4d616c6469766573VxQNVna15_506163696669632f4368617468616dVxQNXba15_506163696669632f46616b616f666fVxQNYpa15_506163696669632f4e6f72666f6c6bVxQOAda16_4166726963612f42756a756d62757261VxQOBta16_4166726963612f4d6f67616469736875VxQODja16_416d65726963612f416e6775696c6c61VxQOEza16_416d65726963612f4172677561696e61VxQOGpa16_416d65726963612f4173756e63696f6eVxQOIfa16_416d65726963612f4261726261646f73VxQOJva16_416d65726963612f446f6d696e696361VxQOLla16_416d65726963612f45646d6f6e746f6eVxQONba16_416d65726963612f456972756e657065VxQOOra16_416d65726963612f4d617a61746c616eVxQOQha16_416d65726963612f4d697175656c6f6eVxQORxa16_416d65726963612f4d6f6e747265616cVxQOTna16_416d65726963612f4e65775f596f726bVxQOVda16_416d65726963612f5265736f6c757465VxQOWta16_416d65726963612f53616e746172656dVxQOYja16_416d65726963612f53616e746961676fVxQOZza16_416d65726963612f53745f4a6f686e73VxQPBpa16_416d65726963612f53745f4b69747473VxQPDfa16_416d65726963612f53745f4c75636961VxQPEva16_416d65726963612f57696e6e69706567VxQPGla16_416e74617263746963612f4361736579VxQPIba16_416e74617263746963612f4461766973VxQPJra16_416e74617263746963612f53796f7761VxQPLha16_417369612f4b7261736e6f796172736bVxQPMxa16_417369612f4e6f766f7369626972736bVxQPOna16_417369612f556c61616e626161746172VxQPQda16_417369612f566c616469766f73746f6bVxQPRta16_41746c616e7469632f4265726d756461VxQPTja16_41746c616e7469632f4d616465697261VxQPUza16_41746c616e7469632f5374616e6c6579VxQPWpa16_4175737472616c69612f437572726965VxQPYfa16_4175737472616c69612f44617277696eVxQPZva16_4175737472616c69612f486f62617274VxQQBla16_4175737472616c69612f5379646e6579VxQQDba16_4575726f70652f416d7374657264616dVxQQEra16_4575726f70652f41737472616b68616eVxQQGha16_4575726f70652f427563686172657374VxQQHxa16_4575726f70652f47696272616c746172VxQQJna16_4575726f70652f4c6a75626c6a616e61VxQQLda16_4575726f70652f4d6172696568616d6eVxQQMta16_4575726f70652f506f64676f72696361VxQQOja16_4575726f70652f53746f636b686f6c6dVxQQPza16_4575726f70652f566f6c676f67726164VxQQRpa16_496e6469616e2f4368726973746d6173VxQQTfa16_496e6469616e2f4b65726775656c656eVxQQUva16_496e6469616e2f4d6175726974697573VxQQWla16_506163696669632f4175636b6c616e64VxQQYba16_506163696669632f46756e6166757469VxQQZra16_506163696669632f486f6e6f6c756c75VxQRBha16_506163696669632f4a6f686e73746f6eVxQRCxa17_4166726963612f43617361626c616e6361VxQREpa17_4166726963612f4c6962726576696c6c65VxQRGha17_4166726963612f4c7562756d6261736869VxQRHza17_4166726963612f4e6f75616b63686f7474VxQRJra17_4166726963612f506f72746f2d4e6f766fVxQRLja17_416d65726963612f416e63686f72616765VxQRNba17_416d65726963612f417261677561696e61VxQROta17_416d65726963612f426f615f5669737461VxQRQla17_416d65726963612f436174616d61726361VxQRSda17_416d65726963612f436869687561687561VxQRTva17_416d65726963612f466f7274616c657a61VxQRVna17_416d65726963612f476c6163655f426179VxQRXfa17_416d65726963612f476f6f73655f426179VxQRYxa17_416d65726963612f47756174656d616c61VxQSApa17_416d65726963612f47756179617175696cVxQSCha17_416d65726963612f4d6174616d6f726f73VxQSDza17_416d65726963612f4d656e6f6d696e6565VxQSFra17_416d65726963612f4d6f6e746572726579VxQSHja17_416d65726963612f53616f5f5061756c6fVxQSJba17_416d65726963612f53745f54686f6d6173VxQSKta17_416d65726963612f56616e636f75766572VxQSMla17_416e74617263746963612f4d6177736f6eVxQSOda17_416e74617263746963612f50616c6d6572VxQSPva17_416e74617263746963612f566f73746f6bVxQSRna17_417369612f4b75616c615f4c756d707572VxQSTfa17_417369612f4e6f766f6b757a6e6574736bVxQSUxa17_4575726f70652f4272617469736c617661VxQSWpa17_4575726f70652f436f70656e686167656eVxQSYha17_4575726f70652f4c7578656d626f757267VxQSZza17_4575726f70652f53616e5f4d6172696e6fVxQTBra17_4575726f70652f53696d6665726f706f6cVxQTDja17_4575726f70652f5a61706f726f7a687965VxQTFba17_506163696669632f456e64657262757279VxQTGta17_506163696669632f47616c617061676f73VxQTIla17_506163696669632f4b77616a616c65696eVxQTKda17_506163696669632f4d6172717565736173VxQTLva17_506163696669632f5061676f5f5061676fVxQTNna17_506163696669632f5261726f746f6e6761VxQTPfa17_506163696669632f546f6e676174617075VxQTQxa18_4166726963612f41646469735f4162616261VxQTSra18_4166726963612f4272617a7a6176696c6c65VxQTUla18_4166726963612f4f75616761646f75676f75VxQTWfa18_416d65726963612f436f7374615f52696361VxQTXza18_416d65726963612f4772616e645f5475726bVxQTZta18_416d65726963612f47756164656c6f757065VxQUBna18_416d65726963612f4865726d6f73696c6c6fVxQUDha18_416d65726963612f4b72616c656e64696a6bVxQUFba18_416d65726963612f4c6f75697376696c6c65VxQUGva18_416d65726963612f4d617274696e69717565VxQUIpa18_416d65726963612f4d6f6e7465766964656fVxQUKja18_416d65726963612f4d6f6e74736572726174VxQUMda18_416d65726963612f506172616d617269626fVxQUNxa18_416d65726963612f52696f5f4272616e636fVxQUPra18_416d65726963612f53745f56696e63656e74VxQURla18_416d65726963612f5768697465686f727365VxQUTfa18_416e74617263746963612f4d634d7572646fVxQUUza18_416e74617263746963612f526f7468657261VxQUWta18_417369612f537265646e656b6f6c796d736bVxQUYna18_417369612f59656b61746572696e62757267VxQVAha18_41746c616e7469632f5265796b6a6176696bVxQVCba18_41746c616e7469632f53745f48656c656e61VxQVDva18_4175737472616c69612f4164656c61696465VxQVFpa18_4175737472616c69612f4272697362616e65VxQVHja18_4175737472616c69612f4c696e64656d616eVxQVJda18_4575726f70652f49736c655f6f665f4d616eVxQVKxa18_4575726f70652f4b616c696e696e67726164VxQVMra18_506163696669632f4b69726974696d617469VxQVOla19_4166726963612f4a6f68616e6e657362757267VxQVQha19_416d65726963612f456c5f53616c7661646f72VxQVSda19_416d65726963612f4c6f735f416e67656c6573VxQVTza19_416d65726963612f4d657869636f5f43697479VxQVVva19_416d65726963612f50616e676e697274756e67VxQVXra19_416d65726963612f506f72746f5f56656c686fVxQVZna19_416d65726963612f50756572746f5f5269636fVxQWBja19_416d65726963612f5261696e795f5269766572VxQWDfa19_416d65726963612f54656775636967616c7061VxQWFba19_416d65726963612f5468756e6465725f426179VxQWGxa19_416d65726963612f59656c6c6f776b6e696665VxQWIta19_4172637469632f4c6f6e67796561726279656eVxQWKpa19_41746c616e7469632f436170655f5665726465VxQWMla19_4175737472616c69612f4c6f72645f486f7765VxQWOha19_4175737472616c69612f4d656c626f75726e65VxQWQda19_496e6469616e2f416e74616e616e617269766fVxQWRza19_506163696669632f47756164616c63616e616cVxQWTva20_4166726963612f4461725f65735f53616c61616dVxQWVta20_416d65726963612f426c616e632d5361626c6f6eVxQWXra20_416d65726963612f4275656e6f735f4169726573VxQWZpa20_416d65726963612f43616d706f5f4772616e6465VxQXBna20_416d65726963612f44616e6d61726b736861766eVxQXDla20_416d65726963612f446177736f6e5f437265656bVxQXFja20_416d65726963612f496e6469616e612f4b6e6f78VxQXHha20_416d65726963612f496e6469616e61706f6c6973VxQXJfa20_416d65726963612f52616e6b696e5f496e6c6574VxQXLda20_416d65726963612f53616e74615f49736162656cVxQXNba20_416d65726963612f53636f726573627973756e64VxQXOza20_416e74617263746963612f4d6163717561726965VxQXQxa20_506163696669632f426f756761696e76696c6c65VxQXSva20_506163696669632f506f72745f4d6f7265736279VxQXUta21_416d65726963612f43616d6272696467655f426179VxQXWta21_416d65726963612f436f72616c5f486172626f7572VxQXYta21_416d65726963612f496e6469616e612f5665766179VxQYAta21_416d65726963612f4c6f7765725f5072696e636573VxQYCta21_416d65726963612f506f72745f6f665f537061696eVxQYEta21_416d65726963612f53616e746f5f446f6d696e676fVxQYGta21_416d65726963612f53745f4261727468656c656d79VxQYIta21_416d65726963612f53776966745f43757272656e74VxQYKta21_4175737472616c69612f42726f6b656e5f48696c6cVxQYMta22_416d65726963612f42616869615f42616e6465726173VxQYOva22_416d65726963612f506f72742d61752d5072696e6365VxQYQxa22_41746c616e7469632f536f7574685f47656f72676961VxQYSza23_416d65726963612f417267656e74696e612f53616c7461VxQYVda23_416d65726963612f496e6469616e612f4d6172656e676fVxQYXha23_416d65726963612f496e6469616e612f57696e616d6163VxQYZla25_416d65726963612f417267656e74696e612f547563756d616eVxQZBta25_416d65726963612f417267656e74696e612f55736875616961VxQZEba25_416d65726963612f496e6469616e612f54656c6c5f43697479VxQZGja25_416d65726963612f496e6469616e612f56696e63656e6e6573VxQZIra25_416e74617263746963612f44756d6f6e7444557276696c6c65VxQZKza26_416d65726963612f417267656e74696e612f4c615f52696f6a61VxQZNja26_416d65726963612f417267656e74696e612f53616e5f4a75616eVxQZPta26_416d65726963612f417267656e74696e612f53616e5f4c756973VxQZSda26_416d65726963612f496e6469616e612f50657465727362757267VxQZUna27_416d65726963612f4b656e7475636b792f4d6f6e746963656c6c6fVxQZWza27_416d65726963612f4e6f7274685f44616b6f74612f4265756c6168VxQZZla27_416d65726963612f4e6f7274685f44616b6f74612f43656e746572VxQBABxa30_416d65726963612f417267656e74696e612f52696f5f47616c6c65676f73VxQBAEqa30_416d65726963612f4e6f7274685f44616b6f74612f4e65775f53616c656dZQBAHwFNaNbNiNfMxQBAHyZi 


The first time I encountered this symbol in phobos I though: WTF? Then I tried to demangle it:
core.exception.RangeError@src\core\demangle.d(230): Range violation

I was then quickly informed by Rainer Scheutze what the correct demangling for this symbols is:

pure nothrow @nogc @safe int object.__switch!(immutable(char), "CST6CDT", "EST5EDT", "Etc/GMT", "MST7MDT", "PST8PDT", "Asia/Aden", "Asia/Baku", "Asia/Dili", "Asia/Hovd", "Asia/Omsk", "Asia/Oral", "Etc/GMT+1", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-1", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Asia/Amman", "Asia/Aqtau", "Asia/Chita", "Asia/Dhaka", "Asia/Dubai", "Asia/Kabul", "Asia/Macau", "Asia/Qatar", "Asia/Seoul", "Asia/Tokyo", "Asia/Tomsk", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Africa/Juba", "Africa/Lome", "Asia/Almaty", "Asia/Anadyr", "Asia/Aqtobe", "Asia/Beirut", "Asia/Brunei", "Asia/Hebron", "Asia/Kuwait", "Asia/Manila", "Asia/Muscat", "Asia/Riyadh", "Asia/Saigon", "Asia/Taipei", "Asia/Tehran", "Asia/Urumqi", "Europe/Kiev", "Europe/Oslo", "Europe/Riga", "Europe/Rome", "Indian/Mahe", "Africa/Accra", "Africa/Cairo", "Africa/Ceuta", "Africa/Dakar", "Africa/Lagos", "Africa/Tunis", "America/Adak", "America/Lima", "America/Nome", "Asia/Baghdad", "Asia/Bahrain", "Asia/Bangkok", "Asia/Barnaul", "Asia/Bishkek", "Asia/Colombo", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Karachi", "Asia/Kuching", "Asia/Magadan", "Asia/Nicosia", "Asia/Rangoon", "Asia/Tbilisi", "Asia/Thimphu", "Asia/Yakutsk", "Asia/Yerevan", "Europe/Malta", "Europe/Minsk", "Europe/Paris", "Europe/Sofia", "Europe/Vaduz", "Indian/Cocos", "Pacific/Apia", "Pacific/Fiji", "Pacific/Guam", "Pacific/Niue", "Pacific/Truk", "Pacific/Wake", "Africa/Asmera", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Douala", "Africa/Harare", "Africa/Kigali", "Africa/Luanda", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Niamey", "America/Aruba", "America/Bahia", "America/Belem", "America/Boise", "America/Jujuy", "America/Sitka", "America/Thule", "Asia/Ashgabat", "Asia/Calcutta", "Asia/Damascus", "Asia/Dushanbe", "Asia/Jayapura", "Asia/Katmandu", "Asia/Khandyga", "Asia/Makassar", "Asia/Sakhalin", "Asia/Shanghai", "Asia/Tashkent", "Asia/Ust-Nera", "Europe/Athens", "Europe/Berlin", "Europe/Dublin", "Europe/Jersey", "Europe/Lisbon", "Europe/London", "Europe/Madrid", "Europe/Monaco", "Europe/Moscow", "Europe/Prague", "Europe/Samara", "Europe/Skopje", "Europe/Tirane", "Europe/Vienna", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zurich", "Indian/Chagos", "Indian/Comoro", "Pacific/Efate", "Pacific/Nauru", "Pacific/Palau", "Africa/Abidjan", "Africa/Algiers", "Africa/Conakry", "Africa/Kampala", "Africa/Mbabane", "Africa/Nairobi", "Africa/Tripoli", "America/Belize", "America/Bogota", "America/Cancun", "America/Cayman", "America/Cuiaba", "America/Dawson", "America/Denver", "America/Guyana", "America/Havana", "America/Inuvik", "America/Juneau", "America/La_Paz", "America/Maceio", "America/Manaus", "America/Merida", "America/Nassau", "America/Panama", "America/Recife", "America/Regina", "Asia/Hong_Kong", "Asia/Jerusalem", "Asia/Kamchatka", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qyzylorda", "Asia/Samarkand", "Asia/Singapore", "Asia/Vientiane", "Europe/Andorra", "Europe/Tallinn", "Europe/Vatican", "Europe/Vilnius", "Indian/Mayotte", "Indian/Reunion", "Pacific/Easter", "Pacific/Kosrae", "Pacific/Majuro", "Pacific/Midway", "Pacific/Noumea", "Pacific/Ponape", "Pacific/Saipan", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Wallis", "Africa/Blantyre", "Africa/Djibouti", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Khartoum", "Africa/Kinshasa", "Africa/Monrovia", "Africa/Ndjamena", "Africa/Sao_Tome", "Africa/Windhoek", "America/Antigua", "America/Caracas", "America/Cayenne", "America/Chicago", "America/Cordoba", "America/Creston", "America/Curacao", "America/Detroit", "America/Godthab", "America/Grenada", "America/Halifax", "America/Iqaluit", "America/Jamaica", "America/Managua", "America/Marigot", "America/Mendoza", "America/Moncton", "America/Nipigon", "America/Noronha", "America/Ojinaga", "America/Phoenix", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Yakutat", "Asia/Choibalsan", "Asia/Phnom_Penh", "Atlantic/Azores", "Atlantic/Canary", "Atlantic/Faeroe", "Australia/Eucla", "Australia/Perth", "Europe/Belgrade", "Europe/Brussels", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Guernsey", "Europe/Helsinki", "Europe/Istanbul", "Europe/Sarajevo", "Europe/Uzhgorod", "Indian/Maldives", "Pacific/Chatham", "Pacific/Fakaofo", "Pacific/Norfolk", "Africa/Bujumbura", "Africa/Mogadishu", "America/Anguilla", "America/Arguaina", "America/Asuncion", "America/Barbados", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/Mazatlan", "America/Miquelon", "America/Montreal", "America/New_York", "America/Resolute", "America/Santarem", "America/Santiago", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/Winnipeg", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/Syowa", "Asia/Krasnoyarsk", "Asia/Novosibirsk", "Asia/Ulaanbaatar", "Asia/Vladivostok", "Atlantic/Bermuda", "Atlantic/Madeira", "Atlantic/Stanley", "Australia/Currie", "Australia/Darwin", "Australia/Hobart", "Australia/Sydney", "Europe/Amsterdam", "Europe/Astrakhan", "Europe/Bucharest", "Europe/Gibraltar", "Europe/Ljubljana", "Europe/Mariehamn", "Europe/Podgorica", "Europe/Stockholm", "Europe/Volgograd", "Indian/Christmas", "Indian/Kerguelen", "Indian/Mauritius", "Pacific/Auckland", "Pacific/Funafuti", "Pacific/Honolulu", "Pacific/Johnston", "Africa/Casablanca", "Africa/Libreville", "Africa/Lubumbashi", "Africa/Nouakchott", "Africa/Porto-Novo", "America/Anchorage", "America/Araguaina", "America/Boa_Vista", "America/Catamarca", "America/Chihuahua", "America/Fortaleza", "America/Glace_Bay", "America/Goose_Bay", "America/Guatemala", "America/Guayaquil", "America/Matamoros", "America/Menominee", "America/Monterrey", "America/Sao_Paulo", "America/St_Thomas", "America/Vancouver", "Antarctica/Mawson", "Antarctica/Palmer", "Antarctica/Vostok", "Asia/Kuala_Lumpur", "Asia/Novokuznetsk", "Europe/Bratislava", "Europe/Copenhagen", "Europe/Luxembourg", "Europe/San_Marino", "Europe/Simferopol", "Europe/Zaporozhye", "Pacific/Enderbury", "Pacific/Galapagos", "Pacific/Kwajalein", "Pacific/Marquesas", "Pacific/Pago_Pago", "Pacific/Rarotonga", "Pacific/Tongatapu", "Africa/Addis_Ababa", "Africa/Brazzaville", "Africa/Ouagadougou", "America/Costa_Rica", "America/Grand_Turk", "America/Guadeloupe", "America/Hermosillo", "America/Kralendijk", "America/Louisville", "America/Martinique", "America/Montevideo", "America/Montserrat", "America/Paramaribo", "America/Rio_Branco", "America/St_Vincent", "America/Whitehorse", "Antarctica/McMurdo", "Antarctica/Rothera", "Asia/Srednekolymsk", "Asia/Yekaterinburg", "Atlantic/Reykjavik", "Atlantic/St_Helena", "Australia/Adelaide", "Australia/Brisbane", "Australia/Lindeman", "Europe/Isle_of_Man", "Europe/Kaliningrad", "Pacific/Kiritimati", "Africa/Johannesburg", "America/El_Salvador", "America/Los_Angeles", "America/Mexico_City", "America/Pangnirtung", "America/Porto_Velho", "America/Puerto_Rico", "America/Rainy_River", "America/Tegucigalpa", "America/Thunder_Bay", "America/Yellowknife", "Arctic/Longyearbyen", "Atlantic/Cape_Verde", "Australia/Lord_Howe", "Australia/Melbourne", "Indian/Antananarivo", "Pacific/Guadalcanal", "Africa/Dar_es_Salaam", "America/Blanc-Sablon", "America/Buenos_Aires", "America/Campo_Grande", "America/Danmarkshavn", "America/Dawson_Creek", "America/Indiana/Knox", "America/Indianapolis", "America/Rankin_Inlet", "America/Santa_Isabel", "America/Scoresbysund", "Antarctica/Macquarie", "Pacific/Bougainville", "Pacific/Port_Moresby", "America/Cambridge_Bay", "America/Coral_Harbour", "America/Indiana/Vevay", "America/Lower_Princes", "America/Port_of_Spain", "America/Santo_Domingo", "America/St_Barthelemy", "America/Swift_Current", "Australia/Broken_Hill", "America/Bahia_Banderas", "America/Port-au-Prince", "Atlantic/South_Georgia", "America/Argentina/Salta", "America/Indiana/Marengo", "America/Indiana/Winamac", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Indiana/Tell_City", "America/Indiana/Vincennes", "Antarctica/DumontDUrville", "America/Argentina/La_Rioja", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Indiana/Petersburg", "America/Kentucky/Monticello", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/Argentina/Rio_Gallegos", "America/North_Dakota/New_Salem").__switch(scope const(immutable(char)[]))

So I was thinking to myself: Is it really a good idea to lower string switches to a template if it results in such symbols? This symbol alone takes 17815 Bytes.

If we think this is a good idea, should we rewrite this particular string switch to use a associative array instead to avoid the overly long symbol name?

-- 
Kind Regards
Benjamin Thaut

January 25, 2018
On Thu, Jan 25, 2018 at 07:21:29PM +0100, Benjamin Thaut via Digitalmars-d wrote:
> _D6object__T8__switchTyaVxAyaa7_[...snip ridiculously long symbol...]
> 
> The first time I encountered this symbol in phobos I though: WTF? Then I tried to demangle it: core.exception.RangeError@src\core\demangle.d(230): Range violation

LOL! This reminds me of the days before Rainer's symbol backreferencing PR was merged, where a UFCS chain of range algorithms causes exponential growth in symbol length. This one isn't exponential, but it *is* still ridiculously long.  We need to fix it. :-D


> I was then quickly informed by Rainer Scheutze what the correct demangling for this symbols is:
> 
> pure nothrow @nogc @safe int object.__switch!(immutable(char), "CST6CDT",
> "EST5EDT", "Etc/GMT", "MST7MDT", "PST8PDT", "Asia/Aden", "Asia/Baku",
[... snip ridiculously long template argument list ...]
> "America/Argentina/Rio_Gallegos",
> "America/North_Dakota/New_Salem").__switch(scope const(immutable(char)[]))
> 
> So I was thinking to myself: Is it really a good idea to lower string switches to a template if it results in such symbols? This symbol alone takes 17815 Bytes.

I think this is part of a much larger issue that we need to tackle, that is, long template argument lists (esp. since D allows you to directly manipulate these lists aka tuples aka AliasSeq, so user code is liable to generate large numbers of these things with potentially very long lengths).

I don't have a clear solution yet, but my initial thought is that in cases like these, where the list is basically unique, all that's *really* required of the generated symbol is that it be unique. There is really no need to go encoding every last detail into the symbol name, as if the first 1000 bytes or so of the symbol isn't probably already enough to disambiguate it from every other symbol in the program.  If we could somehow detect or annotate these cases as merely requiring a unique symbol, then we could just substitute the whole monstrous thing with a hash, like an MD5 or SHA checksum, which will be much less than 100 bytes.


> If we think this is a good idea, should we rewrite this particular string switch to use a associative array instead to avoid the overly long symbol name?
[...]

I believe the original idea behind using a template for string switches was to allow the possibility for the implementation to be smarter about how to implement the switch (IIRC, string switches used to be implemented as a runtime function). Supposedly object.__switch could analyze the list of strings at compile-time and generate a perfect hash or something, to maximize runtime performance.

IMO the real fix ought to be to make the compiler somehow recognize these cases and generate shorter symbols for them, rather than hard-coding the Phobos code to use AAs, though admittedly, the latter may probably a necessary stop-gap measure in the meantime.

(On which note, I wonder if you may have inadvertently found the source of my recent dmd memory usage woes... a symbol like this in a commonly imported module in Phobos like std.datetime would explain why recently I suddenly can't compile Phobos anymore on a low-memory system without invoking the kernel OOM killer, or why even the most trivial of projects take ridiculous amounts of memory to compile.)


T

-- 
The volume of a pizza of thickness a and radius z can be described by the following formula: pi zz a. -- Wouter Verhelst
January 25, 2018
On Thursday, January 25, 2018 19:21:29 Benjamin Thaut via Digitalmars-d wrote:
> If we think this is a good idea, should we rewrite this particular string switch to use a associative array instead to avoid the overly long symbol name?

That particular switch statement is in a function that's deprecated and scheduled to be completely removed in about six months, so I don't see much point in worrying about it unless it's causing serious problems, and while that symbol name is stupidly long, AFAIK, it's not really causing any problems.

I never would have thought that a switch statement would even have a symbol associated with it though. Clearly, I have no clue about how they're implemented.

- Jonathan M Davis

January 25, 2018
Am 25.01.2018 um 19:42 schrieb Jonathan M Davis:
> 
> That particular switch statement is in a function that's deprecated and
> scheduled to be completely removed in about six months, so I don't see much
> point in worrying about it unless it's causing serious problems, and while
> that symbol name is stupidly long, AFAIK, it's not really causing any
> problems.
> 

The main problem is binary size for shared library verisons of phobos. The overly long symbols names contribute significantly to binary size as for both exports and imports. The full symbol name is stored in the dll and the exe that uses the dll.

-- 
Kind Regards
Benjamin Thaut
January 25, 2018
On Thu, Jan 25, 2018 at 11:42:03AM -0700, Jonathan M Davis via Digitalmars-d wrote:
> On Thursday, January 25, 2018 19:21:29 Benjamin Thaut via Digitalmars-d wrote:
> > If we think this is a good idea, should we rewrite this particular string switch to use a associative array instead to avoid the overly long symbol name?
> 
> That particular switch statement is in a function that's deprecated and scheduled to be completely removed in about six months, so I don't see much point in worrying about it unless it's causing serious problems, and while that symbol name is stupidly long, AFAIK, it's not really causing any problems.

I haven't verified this yet, but I suspect that this may be (one of?) the cause(s) of my recent woes with dmd's memory usage on low-memory systems. If indeed this is the cause, then yes, it *is* causing problems for me and anyone else who wants to use dmd on a low-memory system (this sounds almost like an oxymoron these days!). And since it's deprecated, perhaps it wouldn't hurt to hack it to use an AA instead so that in the meantime Phobos doesn't consume inordinate amounts of memory just to compile.


> I never would have thought that a switch statement would even have a symbol associated with it though. Clearly, I have no clue about how they're implemented.
[...]

IIRC they used to be a runtime function in druntime, but recently got changed into a template, ostensibly for more flexibility in how they're implemented. Apparently the original function was pretty lousy in terms of performance. The new object.__switch is supposedly better, but the expense of ridiculously-long symbols in the binary. Some days you just can't win. :-/


T

-- 
Two wrongs don't make a right; but three rights do make a left...
January 25, 2018
On 1/25/18 1:41 PM, H. S. Teoh wrote:
> On Thu, Jan 25, 2018 at 07:21:29PM +0100, Benjamin Thaut via Digitalmars-d wrote:

>> If we think this is a good idea, should we rewrite this particular
>> string switch to use a associative array instead to avoid the overly
>> long symbol name?
> [...]
> 
> I believe the original idea behind using a template for string switches
> was to allow the possibility for the implementation to be smarter about
> how to implement the switch (IIRC, string switches used to be
> implemented as a runtime function). Supposedly object.__switch could
> analyze the list of strings at compile-time and generate a perfect hash
> or something, to maximize runtime performance.

I believe that when the number of cases is small enough, the binary search of the strings is done recursively to allow full optimization. And these symbols should be relatively small.

But I think if the number of strings is large enough, it calls the same runtime function as before (essentially). But here we have a problem -- the wrapper for this function is essentially this giant symbol that generates the string array locally, and then calls the real function. It's a huge cost just for a simple inline-able wrapper to another call.

See the code here:
https://github.com/dlang/druntime/blob/master/src/object.d#L3873

The function that does the real work is __switchSearch, which is only templated on the char type. It's going to be very very infrequent that the exact same switch case list is used in multiple places, meaning you are paying a huge cost for essentially memoizing these string lists.

I think we need some way to mark a function as following a different mangling, or maybe even just avoid the whole memoization, do everything inline.

-Steve
January 26, 2018
On 1/25/2018 10:21 AM, Benjamin Thaut wrote:
> So I was thinking to myself: Is it really a good idea to lower string switches to a template if it results in such symbols? This symbol alone takes 17815 Bytes.
> 
> If we think this is a good idea, should we rewrite this particular string switch to use a associative array instead to avoid the overly long symbol name?

This clearly should be in bugzilla.

January 27, 2018
On Saturday, 27 January 2018 at 07:40:16 UTC, Walter Bright wrote:
>
> This clearly should be in bugzilla.

As phobos or dmd bug?
January 27, 2018
dmd
January 27, 2018
On Saturday, 27 January 2018 at 10:38:46 UTC, Kagamin wrote:
> dmd

see also this horrendous stacktrace when calling getopt with a bad argument:

full stacktrace:

https://gist.github.com/timotheecour/d6b623bd3d223f5d958cd86adffd7807

just 1 line of this stacktrace:

```
28  dscanner                            0x000000010d59f428 @safe void std.getopt.getoptImpl!(std.getopt.config, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], immutable(char)[]*, immutable(char)[], immutable(char)[]*, immutable(char)[], bool*, immutable(char)[], immutable(char)[][]*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*).getoptImpl(ref immutable(char)[][], ref std.getopt.configuration, ref std.getopt.GetoptResult, ref std.getopt.GetOptException, void[][immutable(char)[]], void[][immutable(char)[]], std.getopt.config, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], immutable(char)[]*, immutable(char)[], immutable(char)[]*, immutable(char)[], bool*, immutable(char)[], immutable(char)[][]*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*, immutable(char)[], bool*) + 460
```

https://dlang.org/blog/2017/12/20/ds-newfangled-name-mangling/ doesn't seem to help in cases like that

« First   ‹ Prev
1 2