[TableGen] Prevent invalid code generation when emitting AssemblerPredicate conditions.
authorToma Tabacu <toma.tabacu@imgtec.com>
Tue, 7 Apr 2015 12:10:11 +0000 (12:10 +0000)
committerToma Tabacu <toma.tabacu@imgtec.com>
Tue, 7 Apr 2015 12:10:11 +0000 (12:10 +0000)
commit3d5ce49ce5c968aa4b321843f37cdcb4eecdf834
tree222b1e296de147b17d2e22f551984394546ea5a0
parent14ed198ff719bf851c10434500ec88740ffca30c
[TableGen] Prevent invalid code generation when emitting AssemblerPredicate conditions.

Summary:
The loop which emits AssemblerPredicate conditions also links them together by emitting a '&&'.
If the 1st predicate is not an AssemblerPredicate, while the 2nd one is, nothing gets emitted for the 1st one, but we still emit the '&&' because of the 2nd predicate.
This generated code looks like "( && Cond2)" and is invalid.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: dsanders, llvm-commits

Differential Revision: http://reviews.llvm.org/D8294

llvm-svn: 234312
llvm/test/TableGen/AsmPredicateCondsEmission.td [new file with mode: 0644]
llvm/utils/TableGen/FixedLenDecoderEmitter.cpp