Totally forget deallocated SDNodes in SDDbgInfo.
What would happen before that commit is that the SDDbgValues associated with
a deallocated SDNode would be marked Invalidated, but SDDbgInfo would keep
a map entry keyed by the SDNode pointer pointing to this list of invalidated
SDDbgNodes. As the memory gets reused, the list might get wrongly associated
with another new SDNode. As the SDDbgValues are cloned when they are transfered,
this can lead to an exponential number of SDDbgValues being produced during
DAGCombine like in http://llvm.org/bugs/show_bug.cgi?id=20893
Note that the previous behavior wasn't really buggy as the invalidation made
sure that the SDDbgValues won't be used. This commit can be considered a
memory optimization and as such is really hard to validate in a unit-test.
OK sthen@
SRC (Simple Revision Control) is RCS, reloaded.
It remains determinedly file-oriented and doesn't even track the
committer of a change (because that's always you), but incorporates
the design and user-interface lessons of modern systems. It features
sequential revision numbers, lockless operation, embedded command
help, and a command set that will seem familiar to users of Subversion,
Mercurial, and Git.
- take maintainer
- sort according to Makefile.template
- use POSIX::strftime() which handles the time zone field correctly
- remove XS for strftime() implementation and disable dynamic linking
- disable NOTZ_TIMEZONE, it breaks in Europe/London during winter time
OK sthen@
ok benoit@ landry@
gengetopt generates a C function that uses getopt_long function to parse
the command line options, to validate them and fill a struct.
gengetopt is perfect if you are too lazy to write all stuff required to
call getopt_long, and when you have a program and wish it took options.
Generated code works if you use GNU Autoconf or GNU Automake.