An alternative approach that is probably faster and simpler (no matrices or dot products), although slightly "less correct": http://www.gabrielgambetta.com/computer-graphics-from-scratc...
As you may know, where this algorithm of 2D homogeneous rasterization really shines is in how it simplifies the triangle setup by deferring the perspective-divide until later rasterizer stagee. It's tricky for cases where (w <= 0.0f) so explicit clipping/generating new vertices and handling all the additional vertex attributes is not needed. In reality, there is no mat3::inverse() or even per-vertex attribute bary calculation so it fits rather easily and elegantly to the rest of tri. setup. The original paper I link there explains greatly how for HW the gains can be even bigger.
Any day? Even on those days when you need to use say, 80486 or 68000? Or some low-end microcontroller?