{"push_id":601066504,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"28da40ca113c0cf404bd035043c2804b3190b11f","before":"a7022ce470762e3a5b3602660ba1737d7d9508c8","commits":[{"sha":"28da40ca113c0cf404bd035043c2804b3190b11f","author":{"email":"157f0aa387af74e0e19b139f9b56b9a20fc05454@imgtec.com","name":"Daniel Sanders"},"message":"Recommit r232027 with PR22883 fixed: Add infrastructure for support of multiple memory constraints.\n\nThe operand flag word for ISD::INLINEASM nodes now contains a 15-bit\nmemory constraint ID when the operand kind is Kind_Mem. This constraint\nID is a numeric equivalent to the constraint code string and is converted\nwith a target specific hook in TargetLowering.\n\nThis patch maps all memory constraints to InlineAsm::Constraint_m so there\nis no functional change at this point. It just proves that using these\npreviously unused bits in the encoding of the flag word doesn't break\nanything.\n\nThe next patch will make each target preserve the current mapping of\neverything to Constraint_m for itself while changing the target independent\nimplementation of the hook to return Constraint_Unknown appropriately. Each\ntarget will then be adapted in separate patches to use appropriate\nConstraint_* values.\n\nPR22883 was caused the matching operands copying the whole of the operand flags\nfor the matched operand. This included the constraint id which needed to be\nreplaced with the operand number. This has been fixed with a conversion\nfunction. Following on from this, matching operands also used the operand\nnumber as the constraint id. This has been fixed by looking up the matched\noperand and taking it from there.","distinct":true,"url":"https://api.github.com/repos/chapuni/llvm-project-submodule/commits/28da40ca113c0cf404bd035043c2804b3190b11f"}]}