mirror of
https://github.com/Cisco-Talos/clamav.git
synced 2026-02-07 05:22:03 -05:00
9da170402594598fd2d075e45841096d4a10b126
This brings in some memory leak fixes for LLVMCOntext. Squashed commit of the following: commit 4cfaf41d499ce05b11ecb62746c3e86b04440f62 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Aug 31 18:26:48 2009 +0000 Output a hex value, because all of the others are hex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80601 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7829e5a6558bb97589d47d61da3142f7ebbdaeac Author: Dale Johannesen <dalej@apple.com> Date: Mon Aug 31 18:05:23 2009 +0000 Fix some misspellings of XTARGET. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80598 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8364630e4cb67b6f64a704960e73ae44ce3f10ed Author: Dale Johannesen <dalej@apple.com> Date: Mon Aug 31 17:49:20 2009 +0000 Mark test as passing on all x86, which it should, although I don't think anyone cares about this feature except Darwin. PR 4825. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80596 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf91fb4cb2e15b1fa07dc1282ac59c3659d80015 Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 17:08:30 2009 +0000 cleanups pointed out by duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80595 91177308-0d34-0410-b5e6-96231b3b80d8 commit 752d366fe7a9d0f68258465ce554cdf40af2918e Author: Duncan Sands <baldrick@free.fr> Date: Mon Aug 31 16:45:16 2009 +0000 Revert commit 80428. It completely broke exception handling on x86-32 linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80592 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c8dfbb88bb125c2b7d1105645937b14dce9bcd3 Author: Edwin Török <edwintorok@gmail.com> Date: Mon Aug 31 16:14:59 2009 +0000 Free the constants that have no uses in ~LLVMContext. This fixes leaks from LLVMContext in multithreaded apps. Since constants are only deleted if they have no uses, it is safe to not delete a Module on shutdown, as many single-threaded tools do. Multithreaded apps should however delete the Module before destroying the Context to ensure that there are no leaks (assuming they use a different context for each thread). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80590 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d5f43b77a907a2b42ff405ab16e078c6598c70e Author: Edwin Török <edwintorok@gmail.com> Date: Mon Aug 31 16:12:29 2009 +0000 Fix ExplicitSymbols leak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80589 91177308-0d34-0410-b5e6-96231b3b80d8 commit b759ebc5bc48ee93a9f4b031ec6ed3247028d77c Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 31 13:05:24 2009 +0000 Normalize makefile comments and sort cmake file lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80584 91177308-0d34-0410-b5e6-96231b3b80d8 commit d79f43204be2893e74872f1062e2a44f023d39e1 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 31 08:09:28 2009 +0000 llvm-mc: Pass values to MCStreamer as MCExprs, not MCValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80578 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4c67959b5ea0bbd3a39085c91c2d3162c6fd973 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 31 08:09:09 2009 +0000 llvm-mc: Simplify EmitAssignment ('.set' is identical to '='). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80577 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6a03e093598d90c10c8d1cab8425e3d107b12cf Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 31 08:08:50 2009 +0000 llvm-mc: Remove MCAsmParser::Parse[Paren]RelocatableExpression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80576 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e96621a502ddebc12cd4d139756b7a90fd1ca8a Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 31 08:08:38 2009 +0000 llvm-mc: Switch MCInst to storing an MCExpr* instead of an MCValue. Also, use MCInst::print instead of custom code in MCAsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80575 91177308-0d34-0410-b5e6-96231b3b80d8 commit 667cfd44ac3394697e60f54f72bfd190436c061a Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 31 08:08:17 2009 +0000 llvm-mc: Add MCAsmParser::Parse[Paren]Expression forms which return an MCExpr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80574 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22ad5f80f751da3ba986022d09c49fcc4416048a Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 31 08:08:06 2009 +0000 llvm-mc: Make MCSymbolData symbol member const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80573 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29efe7e0c9d32aaefa2a2924a8ded5fd4c76ff28 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 31 08:07:55 2009 +0000 llvm-mc: Add MCContext to MCAssembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80572 91177308-0d34-0410-b5e6-96231b3b80d8 commit 890ebe2d940760796e088902a2613cdf30b16e76 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 31 08:07:44 2009 +0000 llvm-mc: Add MCAsmParser::getContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80571 91177308-0d34-0410-b5e6-96231b3b80d8 commit 510c1a5512b7de68dc9b272eaba0e5d6c3ddc8b9 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 31 08:07:33 2009 +0000 llvm-mc: Add MCExpr::{dump,print}. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80570 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc4d607b1a5fd13c1f19ef812ebb6fe814831d56 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 31 08:07:22 2009 +0000 llvm-mc: Switch MCExpr construction to using static member functions, and taking the MCContext (which now owns all MCExprs). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80569 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e3b031540ae25a464bfa37cdbd19e2cad301ee7 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 31 08:07:08 2009 +0000 llvm-mc: Add some doxyment markers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80568 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3679d2f3156d001053bae8fa5a162852b7700a27 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 31 08:06:59 2009 +0000 llvm-mc: Move AsmExpr into MC lib (as MCExpr). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80567 91177308-0d34-0410-b5e6-96231b3b80d8 commit 298ea10f4da28d9be51f8be5af59f88ea86ce7ec Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 07:23:46 2009 +0000 Step #1 to giving Callgraph some sane invariants. The problems with callgraph stem from the fact that we have two types of passes that need to update it: 1. callgraphscc and module passes that are explicitly aware of it 2. Functionpasses (and loop passes etc) that are interlaced with CGSCC passes by the CGSCC Passmgr. In the case of #1, we can reasonably expect the passes to update the call graph just like any analysis. However, functionpasses are not and generally should not be CG aware. This has caused us no end of problems, so this takes a new approach. Logically, the CGSCC Pass manager can rescan every function after it runs a function pass over it to see if the functionpass made any updates to the IR that affect the callgraph. This allows it to catch new calls introduced by the functionpass. In practice, doing this would be slow. This implementation keeps track of whether or not the current scc is dirtied by a function pass, and, if so, delays updating the callgraph until it is actually needed again. This was we avoid extraneous rescans, but we still have good invariants when the callgraph is needed. Step #2 of the "give Callgraph some sane invariants" is to change CallGraphNode to use a CallBackVH for the callsite entry of the CallGraphNode. This way we can immediately remove entries from the callgraph when a FunctionPass is active instead of having dangling pointers. The current pass tries to tolerate these dangling pointers, but it is just an evil hack. This is related to PR3601/4835/4029. This also reverts r80541, a hack working around the sad lack of invariants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80566 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21d79e26df48405ff2fdfde682c4fdf6c646ef8a Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 06:57:37 2009 +0000 fix some cases where instcombine would change hte IR but not return true from runOnFunction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80562 91177308-0d34-0410-b5e6-96231b3b80d8 commit 223479b6087a6d9a1470c857c459e408ba51df84 Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 06:01:21 2009 +0000 cleanups, factor some code out to a helper function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80542 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5313424550268526a14fd910cfb59efb95e0f30 Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 05:46:59 2009 +0000 fix a crash building SPASS by tolerating a callsite that doesn't exist in the callgraph, see the big comment at the top of the testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80541 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c76b7e8e15bf7ed6607393535f64a9070b6df8c Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 05:34:32 2009 +0000 comment and simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80540 91177308-0d34-0410-b5e6-96231b3b80d8 commit d441cd63a37ec3589fed1cfba11bbb177dab8fa6 Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 05:22:48 2009 +0000 add -debug output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80539 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26b7f945b3a935e44755202ef7be13fdee8c75b5 Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 05:17:58 2009 +0000 improve -debug output, so that -debug is more likely to print when instcombine is changing stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80538 91177308-0d34-0410-b5e6-96231b3b80d8 commit adba7ea53650f26a6752f606041ac6d741c1fd4f Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 04:36:22 2009 +0000 fix a bug I introduced with my 'instcombine builder' refactoring changes: SimplifyDemandedBits can't use the builder yet because it has the wrong insertion point. This fixes a crash building MultiSource/Benchmarks/PAQ8p git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80537 91177308-0d34-0410-b5e6-96231b3b80d8 commit b74203603b43d08ddef33e9a4c9c03752d86aee6 Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 04:09:04 2009 +0000 simplify some code by making the SCCNodes set contain Function*'s instead of CallGraphNode*'s. This also papers over a callgraph problem where a pass (in this case, MemCpyOpt) introduces a new function into the module (llvm.memset.i64) but doesn't add it to the call graph (nor should it, since it is a function pass). While it might be a good idea for MemCpyOpt to not synthesize functions in a runOnFunction(), there is no need for FunctionAttrs to be boneheaded, so fix it there. This fixes an assertion building 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80535 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e30f91f1c190b8f3ba93de2c8746e0addaf056e Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 03:22:35 2009 +0000 only print the override triple if it exists! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80534 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd7079292b43ca5eceae2c585fc2899033a448f7 Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 03:15:49 2009 +0000 Fix PR4834, a tricky case where the inliner would resolve an indirect function pointer, inline it, then go to delete the body. The problem is that the callgraph had other references to the function, though the inliner had no way to know it, so we got a dangling pointer and an invalid iterator out of the deal. The fix to this is pretty simple: stop the inliner from deleting the function by knowing that there are references to it. Do this by making CallGraphNodes contain a refcount. This requires moving deletion of available_externally functions to the module-level cleanup sweep where it belongs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80533 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d7776f7adca3f51d05c3bbfbacaf65a5ae5167f Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 02:24:20 2009 +0000 use an accessor instead of poking internals of a node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80532 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7032b5cbb5282c844008e780c7bbdddf8f8cf096 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Aug 31 01:58:50 2009 +0000 CMake: updated library dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80531 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54b6adfbb882f2f9b96c241fb87d0128ce840960 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Aug 31 01:35:03 2009 +0000 PR4747 Shared landing pads run into trouble with SJLJ, as the dispatch table is mapped to call sites, and merging the pads will throw that off. There needs to be a one-to-one mapping of landing pad exception table entries to invoke call points. Detecting the shared pad during lowering of SJLJ info insn't sufficient, as the dispatch function may still need separate destinations to properly handle phi-nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80530 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86ab47ae9c388e9e046dedd9d9d554268290e450 Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 00:28:46 2009 +0000 update unit test for previous change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80528 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3dab7152eedc0d822a9499102303eba526026021 Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 31 00:19:58 2009 +0000 Fix some nasty callgraph dangling pointer problems in argpromotion and structretpromote. Basically, when replacing a function, they used the 'changeFunction' api which changes the entry in the function map (and steals/reuses the callgraph node). This has some interesting effects: first, the problem is that it doesn't update the "callee" edges in any callees of the function in the call graph. Second, this covers for a major problem in all the CGSCC pass stuff, which is that it is completely broken when functions are deleted if they *don't* reuse a CGN. (there is a cute little fixme about this though :). This patch changes the protocol that CGSCC passes must obey: now the CGSCC pass manager copies the SCC and preincrements its iterator to avoid passes invalidating it. This allows CGSCC passes to mutate the current SCC. However multiple passes may be run on that SCC, so if passes do this, they are now required to *update* the SCC to be current when they return. Other less interesting parts of this patch are that it makes passes update the CG more directly, eliminates changeFunction, and requires clients of replaceCallSite to specify the new callee CGN if they are changing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80527 91177308-0d34-0410-b5e6-96231b3b80d8 commit 637d133ffeaa961837ebc87ee6934be5ef401b8f Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Aug 30 23:41:20 2009 +0000 Fix header comment for bindings/ocaml/llvm/Makefile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80526 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad465d7013a6ec529a34605d51377202af71b418 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Aug 30 23:38:06 2009 +0000 Make sure we specify no arguments for context functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80525 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba263e5f1b2320558e3935bbfbdc10c6d581c19d Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 22:24:32 2009 +0000 add a dump() method on callgraph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80524 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72489759fa9fb63fdfa9f2e363222f0c45bf1340 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 22:14:17 2009 +0000 rename test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80523 91177308-0d34-0410-b5e6-96231b3b80d8 commit fae478e46e8ba5192eebbe569a627fdb954e587f Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 22:13:26 2009 +0000 merge all sinking tests into one and convert them to filecheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80522 91177308-0d34-0410-b5e6-96231b3b80d8 commit a94b6974dd77e6457eba731fc6bf760d150f4207 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 22:08:19 2009 +0000 convert scalar_promote to filecheck style and merge 2003-12-13-VolatilePromote.ll into it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80521 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e2f641e11c20fa64e5f605e00168ecc7c0207b6 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 21:45:23 2009 +0000 eliminate some uses of prcontext. Any help here would be appreciated :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80520 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5d911fe3ad0daa3bab9f6ddb24931db969fed00 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 21:36:39 2009 +0000 rename test so that name reflects what it is testing for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80519 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16078ca613ec085b395afbabf5b68b7062e0ac1c Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 21:36:06 2009 +0000 convert to filecheck format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80518 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0799dd19d3f0c2f1beb1b17ef7842ae5b61043d2 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 21:31:34 2009 +0000 suck a bunch more gep tests into getelementptr.ll and filecheckize them all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80517 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16d7262e7a2e523c97e2c8bb2b4ab8823cf05772 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Aug 30 21:14:05 2009 +0000 Tweak comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80516 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a8458c86c784f7955ab7815b4840fc21f27b2d8 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Aug 30 21:13:58 2009 +0000 Fix some possible-use-of-uninitialized warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80515 91177308-0d34-0410-b5e6-96231b3b80d8 commit 909749e25e3d5442e5b407781d2de92871f81a64 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 21:02:36 2009 +0000 consolodate various GEP tests into getelementptr.ll using filecheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80514 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccf7551a0445599b24a0eae667242e67b5f5d298 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 21:02:02 2009 +0000 another huge testcase, this time from 'gs' in llvm-test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80513 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1fa629a0ffe6aa837bda41389c098e236a5b0f0c Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 21:01:14 2009 +0000 remove another poorly-reduced testcase which came from ldecod in llvm-test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80512 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36d9c48134861d576a78c09e001d7773a502ea76 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 21:00:11 2009 +0000 this testcase is 500 lines long and is distilled from bzip2, just remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80511 91177308-0d34-0410-b5e6-96231b3b80d8 commit 586de4da4bffce2aae9110a60a39a3318014674c Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 20:48:15 2009 +0000 convert to filecheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80510 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83288fa512830d723318bf99060d3ec4fbf53abc Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 20:38:21 2009 +0000 Fix PR4748: don't fold gep(bitcast(x)) into bitcast(gep) when x is itself a bitcast. Since we have gep(bitcast(bitcast(y))) in this case, just wait for the two bitcasts to get zapped. This prevents instcombine from confusing some aliasing stuff, and allows it to directly eliminate the load in the testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80508 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3a2359906e6939a2552c7c23877592693d757f1 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 20:36:46 2009 +0000 misc cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80507 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6807a24de176e563843a0c5a21c9358b5eeefc2d Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 20:06:40 2009 +0000 add getPointerAddressSpace() to GEP instruction, use the method in a few scalar xforms to simplify things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80506 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6164c20cdaaa27a2cc7b340604b4df3f2b97129 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 20:01:10 2009 +0000 eliminate InsertCastBefore, use the builder instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80505 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78628294ebe9a062fbd7e55edf5240e9b7c53fce Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 19:47:22 2009 +0000 eliminate InsertBitCastBefore, just use the builder instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80504 91177308-0d34-0410-b5e6-96231b3b80d8 commit b77b0464ba62108a07af655f626f5bfe3bd63162 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 19:45:21 2009 +0000 add a "getPointerAddressSpace" helper method to LoadInst and StoreInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80503 91177308-0d34-0410-b5e6-96231b3b80d8 commit d33527768525e6447c6fdcf521ffb975165dbc7a Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Aug 30 19:06:39 2009 +0000 Add missed pattern git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80502 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad7516ac00ede459691feba7f448a4c3654ea6fc Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 18:50:58 2009 +0000 convert a bunch more calls to InsertNewInstBefore to use the new Instcombine builder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80501 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36ec3b4e9828905bdc6bf7ef91ac808ab11e7d45 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 17:53:59 2009 +0000 fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80500 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ba22dd113839d66b3f2912aff6bdd27776b1608 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 17:44:10 2009 +0000 hopefully unbreak the build by making this-> explicit for dependent base class lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80499 91177308-0d34-0410-b5e6-96231b3b80d8 commit 243874430bb02c8f76b7603cbc8f31ebf2749785 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Aug 30 17:14:54 2009 +0000 EXTRACT_VECTOR_ELEMENT can have result type different from element type. Remove the assertion and generalize the code for ARM NEON stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80498 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42cee05a28e87ba96760daaf9699f8355ea53f6e Author: Edwin Török <edwintorok@gmail.com> Date: Sun Aug 30 08:24:09 2009 +0000 Add regular expression matching support, based on OpenBSD regexec()/regcomp() implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80493 91177308-0d34-0410-b5e6-96231b3b80d8 commit c769485a593b86360597d913c083292279730695 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 07:44:24 2009 +0000 give instcombine a custom IRBuilder that adds new instructions to the workslist and is set to insert new instructions before the current one. Convert a bunch of stuff that used to call InsertNewInstBefore over to use it, greatly simplifying code and making it more natural. There is still a lot more to go, but this is a good start. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80492 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0b47f327e20f338c90202ea21001dd9b06f7ef5 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Aug 30 07:01:09 2009 +0000 Update test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80490 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5ad98f04a19b2b7d463713a77634471578d1a64 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 06:27:41 2009 +0000 add a new InstCombineWorklist::AddValue method that works even if the operand is not an instruction. Simplify most uses of AddOperandsToWorkList to use AddValue and inline it into the one remaining callsite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80488 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4796b62fccd6f8c414b5a642ebe0f6dbbabd5b61 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 06:22:51 2009 +0000 move AddUsersToWorkList to the worklist processing class, make the argument stronger typed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80487 91177308-0d34-0410-b5e6-96231b3b80d8 commit 059cfc7570d47711c1b53c909ab0f9c347cb23c3 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 06:20:05 2009 +0000 rename AddUsesToWorkList -> AddOperandsToWorkList. The former looks too much like AddUsersToWorkList and keeps confusing me. Remove AddSoonDeadInstToWorklist and change its two callers to do the same thing in a simpler way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80486 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8d310b5231890e926000c6939540b93fe094b61 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Aug 30 06:17:49 2009 +0000 llvm-mc/X86: Encode constant MCValue's correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80485 91177308-0d34-0410-b5e6-96231b3b80d8 commit b03d1179e934cb99e30190835fea1e7f4a59ecad Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Aug 30 06:17:16 2009 +0000 llvm-mc: MCStreamer cleanups. - Remove EmitLocalSymbol, this is unsupported for now. - Switch Emit{CommonSymbol,Zerofill} to take alignment in bytes (for consistency). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80484 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3183fb6b613c15627c33a8257cbbfe10dbf0bb7f Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 06:13:40 2009 +0000 inline the trivial AddToWorkList/RemoveFromWorkList methods into their callers. simplify ReplaceInstUsesWith. Make EraseInstFromFunction only add operands to the worklist if there aren't too many of them (this was a scalability win for crazy programs that was only infrequently enforced). Switch more code to using EraseInstFromFunction instead of duplicating it inline. Change some fcmp/icmp optimizations to modify fcmp/icmp in place instead of creating a new one and deleting the old one just to change the predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80483 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf09d6330ea039406e250493d7e45d001f81734d Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 05:56:44 2009 +0000 fix a bug I introduced in r80478 found by the build bot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80482 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5119c70d1620b79288c50ca2ad6a3ea4f11a3f35 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 05:55:36 2009 +0000 refactor instcombine's worklist processing stuff out to its own class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80481 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1dde4eb8a0aef903bfd53d8dabfc61a560e1b327 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 05:55:04 2009 +0000 make DenseMap::clear() early exit if there is nothing to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80480 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69af0ff152a949c41ea8ff4550c74627306262f7 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 05:42:59 2009 +0000 some minor cleanups to IRBuilder, factor the insertion hook out of the main IRBuilder class to allow clients to override it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80479 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c641fc37fc42d878883b0325810a5c8c02a436c Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 05:30:55 2009 +0000 more cleanups: remove some redundant code, and simplify some other places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80478 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2c8a0ac3f529c9e536862b213e18f67de05f422 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 05:08:50 2009 +0000 eliminate the temporary SrcGEPOperands smallvector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80477 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95ba1ec4cbb14614f9ac26c9aabe5cac6640c4b0 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 05:00:50 2009 +0000 simplify/detangle some control flow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80476 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0f553e874121b6a0feb35e580040c02da05ac3c Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 04:49:01 2009 +0000 simplify and cleanup some code, remove some code that just does constant folding of gep's: this is already handled in a more general way. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80475 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9da50553ef4596ea75c3a5434bf9ad356fb574ee Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 30 04:25:40 2009 +0000 default count-aa to -print-all. The whole reason to use count-aa is to see what queries are being made by a transformation, we might as well default to printing them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80474 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09880947395319ff0df656549ddf0b080b7af385 Author: Bill Wendling <isanbard@gmail.com> Date: Sun Aug 30 00:28:57 2009 +0000 Nuke moribund "std::string" version of EOL(..., Encoding). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80466 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdfb9b17b94bffa0de0e4862d22369fa1dcd9099 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 29 23:54:26 2009 +0000 Add AutoGenerated.inc to svn:ignore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80455 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d138f96f048cc7009397708ed10edea7cede5a6 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 29 23:39:38 2009 +0000 Remove an unnecessary Context argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80454 91177308-0d34-0410-b5e6-96231b3b80d8 commit f928ad4af07aaac5e7e81757dcd514acbb5cb39c Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 29 23:37:49 2009 +0000 Minor logic simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80453 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d9354c841746f1802babcd465e542d7a7ea2a10 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 29 23:36:57 2009 +0000 Add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80452 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18e06cf39d0313f80b055eb98dba8d8f42fd08cd Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 29 23:35:16 2009 +0000 Cleanup whitespace and indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80451 91177308-0d34-0410-b5e6-96231b3b80d8 commit b006a1010559be4bc9d5e577c50fc750194f34a6 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 29 23:34:14 2009 +0000 Remove some unused fields. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80450 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1596dd23f3e2df5225cdfcea0904a017f96aaa90 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 29 22:19:15 2009 +0000 CMOV_GR8 clobbers EFLAGS when its expansion involves an xor to set a register to 0. This fixes PR4814. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80445 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac09afaf40216429fad53899cce2f9fde8e267d4 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Aug 29 13:38:21 2009 +0000 Inline empty destructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80431 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c5374802712a3d28cd13207ed3979a95457075c Author: Bill Wendling <isanbard@gmail.com> Date: Sat Aug 29 12:31:38 2009 +0000 Fix warning about non-virtual destructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80429 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4ac493684cdeb2147000a6816a563269fcf3c70 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Aug 29 12:20:54 2009 +0000 - Add target lowering methods to get the preferred format for the FDE and LSDA encodings. - Make some of the values emitted by the FDEs dependent upon the pointer size. This is in line with how GCC does things. And it has the benefit of working for Darwin in 64-bit mode now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80428 91177308-0d34-0410-b5e6-96231b3b80d8 commit 946b521498866b3d83c4447c9c0ece6095a56874 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Aug 29 12:17:53 2009 +0000 Add a form of EOL which emits the text version of a DWARF format encoding. This doesn't handle all values of the formatting. Those can be added as needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80427 91177308-0d34-0410-b5e6-96231b3b80d8 commit 502c35e863882790a94ad432d0a03c4a7e1a0aad Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Aug 29 05:53:25 2009 +0000 PR4795: Remove EEVT::isFP, isInt and isVec types used by TableGen's type inferencing. As far as I can tell, these are equivalent to the existing MVT::fAny, iAny and vAny types, and having both of them makes it harder to reason about and modify the type inferencing code. The specific problem in PR4795 occurs when updating a vAny type to be fAny or iAny, or vice versa. Both iAny and fAny include vector types -- they intersect with the set of types represented by vAny. When merging them, choose fAny/iAny to represent the intersection. This is not perfect, since fAny/iAny also include scalar types, but it is good enough for TableGen's type inferencing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80423 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ac7faa993d472be4a23e0e58fa6e9372960cfe8 Author: Eric Christopher <echristo@apple.com> Date: Sat Aug 29 01:12:46 2009 +0000 Make the augmentation size and next set of bytes agree on size, and make the reference pointer size as it should be. Fixes an abort on a testcase derived from libunwind's personality test in 64-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80414 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83b551c5efdc49183f744103cd8e22a75117d07f Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Aug 29 00:44:16 2009 +0000 Fix OProfile support after r80406 changed the DebugInfo interface from GlobalVariables to MDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80411 91177308-0d34-0410-b5e6-96231b3b80d8 commit e54c004ea5ea6c7e89b1cef9531ce05096122bbf Author: David Goodwin <david_goodwin@apple.com> Date: Sat Aug 29 00:11:13 2009 +0000 Another stab at fixing up register kill flags after post-RA scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80410 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb7c98d9ef32354166106ff8218fb9fcbb8b2d24 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Aug 29 00:08:18 2009 +0000 Do not assert on too wide splats we don't support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80409 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44e0a6cee931258a05b190f9e6e411a6d276c96a Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Aug 28 23:41:26 2009 +0000 Add missed extract_element pattern git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80408 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15e723d2c6021bbeacad9baa9c0d946d4a19867e Author: Devang Patel <dpatel@apple.com> Date: Fri Aug 28 23:24:31 2009 +0000 Reapply 79977. Use MDNodes to encode debug info in llvm IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80406 91177308-0d34-0410-b5e6-96231b3b80d8 commit c299914a58baed2d7cf594494dbba60880d476cd Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Aug 28 23:18:09 2009 +0000 Let Darwin linker auto-synthesize stubs and lazy-pointers. This deletes a bunch of nasty code in ARM asm printer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80404 91177308-0d34-0410-b5e6-96231b3b80d8 commit a14f4474b2d915579e9e9bd8bf4080d7f25e7dcd Author: Eric Christopher <echristo@apple.com> Date: Fri Aug 28 22:33:43 2009 +0000 Nuke trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80401 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6750c9bc8e555f632777eb1c69793b3b0dc40f6 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 16:14:46 2009 +0000 Fix creation of .bca libraries with EXPORTED_SYMBOLS_LIST, this was putting the llvm-ld shell wrapper script in the archive, not the relinked object! Also, rename the temp file to avoid conflicts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80373 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72d34e1a91e3f2b58559f92e5c1716ba10586bf1 Author: Andreas Neustifter <astifter@gmx.at> Date: Fri Aug 28 16:13:45 2009 +0000 Read Makefile.config before using LLVMGCC. See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085828.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80372 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab4193ba50b6b5fcda5e2230e4705676ec07b463 Author: Edwin Török <edwintorok@gmail.com> Date: Fri Aug 28 16:12:48 2009 +0000 install-sh chmods to 0755 by default, and this causes 'git diff' to show that all the Makefiles changed mode. Fix this by tellint install-sh to chmod only to 0644, these are not executable files after all! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80371 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5cc6d8ae5a5813f059b0f03511b29c101c3a8ba Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Aug 28 16:06:41 2009 +0000 Short-term workaround for frame-related weirdness on win64. Some other minor win64 fixes as well. Patch by Michael Beck! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80370 91177308-0d34-0410-b5e6-96231b3b80d8 commit 422cc43971693fd61517993472065277cb0cc903 Author: Edwin Török <edwintorok@gmail.com> Date: Fri Aug 28 14:05:07 2009 +0000 rm needs -f git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80363 91177308-0d34-0410-b5e6-96231b3b80d8 commit da6633bee39686d02cd348b5c79c9dfc14eea6fd Author: Edwin Török <edwintorok@gmail.com> Date: Fri Aug 28 13:35:44 2009 +0000 Remove the llvmprof.out from the test output, otherwise running make check in a non-clean directory causes it to fail (for example when running make check twice), since execution counts will differ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80362 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f10e8664f46c60e4153da5da0ce33cd6b0b2ea3 Author: Andreas Neustifter <astifter@gmx.at> Date: Fri Aug 28 11:28:24 2009 +0000 Preparation for Optimal Edge Profiling: This implements the maximum spanning tree algorithm on CFGs according to weights given by the ProfileEstimator. This is then used to implement Optimal Edge Profiling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80358 91177308-0d34-0410-b5e6-96231b3b80d8 commit c99a43a3864aee1121af69db21545a3974226d41 Author: Andreas Neustifter <astifter@gmx.at> Date: Fri Aug 28 10:38:26 2009 +0000 Remove profiling output file because two consecutive runs of make check give error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80357 91177308-0d34-0410-b5e6-96231b3b80d8 commit 354f75a94252e20f1d61ff7b047f34070dcccfc9 Author: Andreas Neustifter <astifter@gmx.at> Date: Fri Aug 28 10:07:41 2009 +0000 Removed unnecessary file creation during test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80356 91177308-0d34-0410-b5e6-96231b3b80d8 commit 975ad9a72fa60d0e8946c9ec584eb5c29d14386e Author: Andreas Neustifter <astifter@gmx.at> Date: Fri Aug 28 10:00:28 2009 +0000 Pulled all tests into one test. Removed some redundant tests. Rename. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80355 91177308-0d34-0410-b5e6-96231b3b80d8 commit f14af431e0f9724474dfa923ba940ecaf19316c7 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 08:08:22 2009 +0000 Fix -Asserts warning, round two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80354 91177308-0d34-0410-b5e6-96231b3b80d8 commit 796a639383578ff065b5c32539c88f9adb5327c2 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 07:08:47 2009 +0000 llvm-mc: .lsym is more unsupported than unimplemented, pending a use case appearing. Also, all one of the file level flags are implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80352 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8388a8fed449aa79d848dd2e7b0cf8650e063028 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 07:08:35 2009 +0000 llvm-mc: Support .comm emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80351 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ab6715ba17ac6726bd92a4514c68c5e58c3c884 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Aug 28 06:59:37 2009 +0000 Print a nl before pic labels so they start at a new line. This makes assembly more readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80350 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd5e315e8d6dca8cab80789552b6bbfef4d960e0 Author: Andreas Neustifter <astifter@gmx.at> Date: Fri Aug 28 06:48:25 2009 +0000 Since all std::cout is gone, also remove iostream include. (See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085620.html) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80349 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2aca168e5c7bbb35569f6f77a3cd4e8bc17520a Author: Andreas Neustifter <astifter@gmx.at> Date: Fri Aug 28 06:41:00 2009 +0000 Readded test from r79615, this tests the complete profiling tool chain. Furhter tests can test only parts of this system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80348 91177308-0d34-0410-b5e6-96231b3b80d8 commit df98a14701fe2de1d0b83205f32edcdfef8ca141 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 05:49:21 2009 +0000 llvm-mc: Support .zerofill emission. - I'm still trying to figure out the cleanest way to implement this and match the assembler, currently there are some substantial differences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80347 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c215be1a50bfd6f0b994d61d0c0548fefa52795 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 05:49:04 2009 +0000 llvm-mc: Tweak section alignment and size computation to match 'as' closer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80345 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91e7ee60faaf7867aebddbf4915e1422c6895337 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 05:48:54 2009 +0000 llvm-mc: Factor getSectionData out of SwitchSection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80344 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f952b45c4791659fe6b6addfdc2812f11a21a41 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 05:48:46 2009 +0000 llvm-mc: Emit .lcomm as .zerofill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80343 91177308-0d34-0410-b5e6-96231b3b80d8 commit c12c27bdbc93d517025612eab112f28366256839 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 05:48:29 2009 +0000 llvm-mc: Unique zero fill sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80342 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15f1a5cc63c5f08b31c8a67884efd2604067711e Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 05:48:22 2009 +0000 llvm-mc: Add const to EmitZeroFill section argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80341 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6eff3bcb6f481500df60e028ceaff6b60336a1d Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 05:48:10 2009 +0000 llvm-mc: Fix thinko in emitting values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80340 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8425d44b7ffa3397ac7d010598e9caab54e1ed4 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 05:48:04 2009 +0000 Add MathExtras.h OffsetToAlignment, like RoundUpToAlignment but returns the offset to the next aligned integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80339 91177308-0d34-0410-b5e6-96231b3b80d8 commit c24bcdb66bd5b6904147ac443ca44da2660f9223 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 05:47:56 2009 +0000 Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80338 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7e5bacf57cba6f139d726a0c63cb195f38cd39d Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 28 04:48:54 2009 +0000 finish a half formed thought :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80334 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac6a9258ed6e7fa1e1e40ef505799ac54e852be4 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 03:06:28 2009 +0000 Another NO_RUNTIME_LIBRARIES tweak... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80331 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1497c39481d4d8616d4ba1fb2cde490cfc100baa Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 28 02:20:39 2009 +0000 Tweak NO_RUNTIME_LIBS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80330 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4823b9ee92e32a666e03406c46a530fcdbdda1a Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 28 00:45:47 2009 +0000 Mark Andersen's as experimental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80328 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8b647dc112f792cb21b0b675e6d2b300207a4fa Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 28 00:43:14 2009 +0000 Fix PR3913, patch by Jakub Staszak! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80327 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e1d21856de4bf387cccf8365885c45c87642dfb Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Aug 28 00:31:43 2009 +0000 v4, v5 does not support sxtb / sxth. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80322 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66f3f9e7356761c91f8063a38b37293ce750c1c2 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 28 00:21:13 2009 +0000 Disable optional bindings for Apple-style builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80319 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc8f15c7a771649ab75bdf2dea1b27067ee9f269 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 28 00:10:15 2009 +0000 Revert 76080. This broke some powerpc cross compiles. It also makes the llvmCore build dependent on whatever version of llvm-gcc happens to be installed on the build machine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80316 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6decb644026d266aaed9bc51e5840529a4af8df0 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 23:58:10 2009 +0000 Revert r80305, I forgot a dependent change. --- Reverse-merging r80305 into '.': U tools/llvm-mc/AsmParser.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80309 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20b3210d23b9c5633787e3d8bbd98d7cc0083c32 Author: Devang Patel <dpatel@apple.com> Date: Thu Aug 27 23:51:51 2009 +0000 Closure is a very generic name. Use AppleBlock instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80307 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3edc5f01bcfec50757d8cbdb7cd0fb6abb561d67 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 23:45:06 2009 +0000 llvm-mc: Unique sections in .zerofill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80305 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab36e15e689a516f8ff2af4c2c0210a90a423652 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Aug 27 23:44:33 2009 +0000 eliminate all 80-col violations that I have introduced in my recent checkins (and some others more) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80304 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41d850e034d4f33728c8d8d51a3811dbe0fccf8c Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 23:43:28 2009 +0000 Don't build runtime libraries in an Apple style build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80303 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5b6d86316d71c3eae687ecb56abfdfd12679a54 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Aug 27 19:57:56 2009 +0000 Revert 80278 for now, it caused a lot of MIPS tests to fail git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80280 91177308-0d34-0410-b5e6-96231b3b80d8 commit 862f67b71f0aaeccdd24a0cbd4d99a9a9413c43a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Aug 27 19:40:40 2009 +0000 Revamp our friend Mips :) Add MO flags to simplify the printing of relocations. Remove the support for printing large code model relocs (which aren't supported anyway). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80278 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90adb6c4bd8c285660db59e5ac10fd71fa3c1076 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 27 18:16:24 2009 +0000 Don't mark CMOV_GR8 as two-address, or commutable, since it's a pseudo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80271 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa4c3253f6dd9f328549aa73e2710981ac3a2881 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 27 18:14:26 2009 +0000 Adjust the MachineBasicBlock verifier rules to be more tolerant of blocks that end with "unreachable". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80270 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20391ca63ee850ffd6fb86bfd058ff61b698197d Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 27 18:08:16 2009 +0000 Add FIXME for when we support more specific XMM registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80269 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d82bbd2ddfb775d59f271cc25cade73551f976c Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 27 18:07:15 2009 +0000 Nuke trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80268 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8b840f45084d2486be3fd074807d9a37564a33d Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 27 18:02:03 2009 +0000 Use stripPointerCasts instead of doing the same manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80267 91177308-0d34-0410-b5e6-96231b3b80d8 commit a578538e9fde98cb05ce9740d7c63aafbd1c69f4 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 27 17:59:08 2009 +0000 Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80266 91177308-0d34-0410-b5e6-96231b3b80d8 commit c99596ddbf78116260c177edcfad9261bf186b68 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 27 17:55:13 2009 +0000 Teach getUnderlyingObject and skipPointerCasts about GlobalAliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80265 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe1256903404065be182735c1402411c4940e9e5 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 27 17:54:15 2009 +0000 Be somewhat more consistent about const qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80264 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c8455152e3d41b8e5f7b33c3ed99c7a8105f5a8 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 27 17:52:56 2009 +0000 Global Aliases are not identifiable objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80263 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54e98d921f7eabfd3baae5399e835ddc39a75e6c Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 27 17:51:25 2009 +0000 Handle TargetData with const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80262 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec966442362eeff9b24c9eee2b11188ab4a5246b Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 27 17:29:49 2009 +0000 Strip trailing whitespace from blank lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80259 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bec0f5f90c6d917beb4b1433c847aa132cdfacf Author: Gabor Greif <ggreif@gmail.com> Date: Thu Aug 27 17:07:35 2009 +0000 re-apply r80197, now that iterator.h is not mentioned any more git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80254 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa152ae811d8e0ffd01c7a8b454d595cb1a1a31f Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Aug 27 16:25:49 2009 +0000 Hopefully the final missing part :( scalar_to_vector is fully legal now git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80251 91177308-0d34-0410-b5e6-96231b3b80d8 commit 872393c20ee29eaae1746deed115f06192526f64 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Aug 27 16:10:17 2009 +0000 Forgot about actual change :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80250 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a21bce095161b98a3671b2aa0e63a020b03e120 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Aug 27 16:04:47 2009 +0000 scalar_to_vector is fully legal now (implemented as subreg accesses) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80249 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b6e274f8669337cb148c1df4e060a41af14cc1e Author: Devang Patel <dpatel@apple.com> Date: Thu Aug 27 15:32:38 2009 +0000 Remove an entry from ValueMap before removing elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80247 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e8275030925dbd3beeb873d0bf605f0c0c67f0b Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Aug 27 14:51:42 2009 +0000 Ok, sometimes it's profitable to turn scalar_to_vector stuff into subreg access. Add a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80246 91177308-0d34-0410-b5e6-96231b3b80d8 commit baee7b2a5501a45a59554b5bafd87264a2edc442 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Aug 27 14:38:44 2009 +0000 Transform float scalar_to_vector into subreg accesses. No idea whether this is profitable or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80245 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9daa0677ac901b0f54bdba31dc3913b92df58e50 Author: Misha Brukman <brukman+llvm@gmail.com> Date: Thu Aug 27 14:14:21 2009 +0000 STRD and LDRD require ARMv5TE, not just ARMv5T. See http://llvm.org/PR4687 for more info and links. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80244 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4dd75744b70c1a3f686ce5a43952124fb0de7ad9 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Aug 27 12:02:34 2009 +0000 Inverse logic to increase portability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80240 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07f1cdae7f327c15cdfc0d68c8500a275dba72b2 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Thu Aug 27 11:54:38 2009 +0000 To make mcc16 run correctly on mac. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80239 91177308-0d34-0410-b5e6-96231b3b80d8 commit 006e46ee524c49f00fdfa4d0b582c7ecd693c95b Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 08:17:51 2009 +0000 llvm-mc/Mach-O: Add MCCodeEmitter support, for encoding instructions. - No relocations yet, of course. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80235 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f37963b50b496c99300850683ed41db4f9431b6 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 08:12:55 2009 +0000 llvm-mc/X86: Implement single instruction encoding interface for MC. - Note, this is a gigantic hack, with the sole purpose of unblocking further work on the assembler (its also possible to test the mathcer more completely now). - Despite being a hack, its actually good enough to work over all of 403.gcc (although some encodings are probably incorrect). This is a testament to the beauty of X86's MachineInstr, no doubt! ;) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80234 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f32816fdaf9ba3a7e6e5705f94be145fafde497 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 07:58:57 2009 +0000 llvm-mc: Print encodings after the instruction, and only when we have an asm printer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80233 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75513bd24edb8ea2142145b448df7a4cdaeaa335 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 07:58:05 2009 +0000 X86: Mark EH_RETURN as code-gen-only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80232 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0125384b4a902da228354e5a201cd4cf4f2f1a4a Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 07:57:12 2009 +0000 Add {MCInst,MCOperand}::{print,dump} git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80231 91177308-0d34-0410-b5e6-96231b3b80d8 commit 160f252aa8189beba57b0b025b0206a3910c4ae9 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 07:56:39 2009 +0000 llvm-mc: Only show instruction encodings with --show-encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80230 91177308-0d34-0410-b5e6-96231b3b80d8 commit f449eb343e70f1e4e8f982939d53c083a1bc5ba3 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Aug 27 06:59:20 2009 +0000 the buildbots revealed one more breakage. fix. (why didn't I see this?) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 765f012f22956a3085e1e84441af9d880bf65f35 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Aug 27 06:41:46 2009 +0000 Clean up the minor mess I caused with removing iterator.h. I shall take care of 80-col violations and the FIXME later. (Thanks goodness that I live in another continent, so the monkeypox did not strike me :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80224 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc42440879f2a302f2801e224828cfdccd5a92a7 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 27 06:29:33 2009 +0000 Implement a new optimization in the inliner: if inlining multiple calls into a function and if the calls bring in arrays, try to merge them together to reduce stack size. For example, in the testcase we'd previously end up with 4 allocas, now we end up with 2 allocas. As described in the comments, this is not really the ideal solution to this problem, but it is surprisingly effective. For example, on 176.gcc, we end up eliminating 67 arrays at "gccas" time and another 24 at "llvm-ld" time. One piece of concern that I didn't look into: at -O0 -g with forced inlining this will almost certainly result in worse debug info. I think this is acceptable though given that this is a case of "debugging optimized code", and we don't want debug info to prevent the optimizer from doing things anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80215 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d1272cbbc0ba9bffbc702e67c59a8d12ec93660 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 27 06:20:45 2009 +0000 the inliner shouldn't crash on this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80214 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea3bccb555f65187ecbb134d26aab8103ca167b2 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 06:11:15 2009 +0000 For now, only run MC tests if X86 is configured. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80213 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17d1a4db879f7af0fd20dd78f704ff9f82aabbe1 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Aug 27 05:49:50 2009 +0000 This is passing for PPC on Mac OS X. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80210 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf5d1d8ceb34c56f21bd3f41f5329407e8d090ce Author: Bill Wendling <isanbard@gmail.com> Date: Thu Aug 27 05:35:28 2009 +0000 Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80208 91177308-0d34-0410-b5e6-96231b3b80d8 commit f659a56d993743e0d51beb2c94fbe187637e5918 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 27 04:43:05 2009 +0000 unbreak the build, yay for symlinks + makefiles. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80205 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1586b1a1d27d5efeb8e487bbeb7ed255159e53b Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 27 04:32:07 2009 +0000 reduce header #include'age git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80204 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ba292d8cfe7b5bf705c5bb307f63f0c0bbe8979 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 27 04:20:52 2009 +0000 enhance InlineFunction to be able to optionally return a the list of static allocas that it inlined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80203 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb87590c5346b7c17032242e2232a6c1d217f964 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 27 04:02:30 2009 +0000 smallvectorize the list of returns built by CloneAndPruneFunctionInto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80202 91177308-0d34-0410-b5e6-96231b3b80d8 commit 612956220f38126feaacceb378cf105043739271 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 27 03:56:43 2009 +0000 remove CloneTrace, which appears to be dead since 2004. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80201 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae56c0de911bf5328ffda48e51ce37bcd7aa0d76 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 27 03:51:50 2009 +0000 reduce inlining factor some stuff out to a static helper function, and other code cleanups. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80199 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5537c20c55869fac64e4f5738f8eab2080cc79c6 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Aug 27 03:32:50 2009 +0000 Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80198 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25cd944a98bcf3b1542c71d2654fe61e28562867 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Aug 27 03:29:26 2009 +0000 --- Reverse-merging r80147 into '.': A include/llvm/ADT/iterator.cmake U autoconf/configure.ac --- Reverse-merging r80161 into '.': U cmake/config-ix.cmake --- Reverse-merging r80171 into '.': U Makefile --- Reverse-merging r80173 into '.': U configure U include/llvm/Config/config.h.in --- Reverse-merging r80180 into '.': A include/llvm/ADT/iterator.h.in Despite common miscomceptions, iterator.h is alive and well. It broke the build bots for several hours. And yet no one bothered to look at them. Gabor and Doug, please review your changes and make sure that they actually build before resubmitting them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80197 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d0598f6281c0b1ae107b2fa2fabd69ec21263c4 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 27 02:43:49 2009 +0000 Add some checks for MachineCFG consistency. Use AnalyzeBranch and do extra checking when it succeeds, as those are cases where CodeGen will be doing particularly interesting CFG modifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80196 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92e5548870b7945deb93f7956ea816f67d34b73f Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 02:08:37 2009 +0000 Update CMake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80195 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f377df6bba8110c3bc0bf5185d33d1f46b54c6b Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 01:34:22 2009 +0000 llvm-mc: Tweak MCCodeEmitter skeleton. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80193 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdde2975f55c43493f3318630985e7a1e8e14384 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 27 01:25:57 2009 +0000 Initialize the PoisonMemory member before initializing members that call methods that read the PoisonMemory member. This fixes potential spurious (though probably otherwise harmless) poising of unused memory, and fixes the associated valgrind error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80192 91177308-0d34-0410-b5e6-96231b3b80d8 commit 363cd759d4186bdae7b49e89a0d434749d6198aa Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Aug 27 01:23:50 2009 +0000 Fix PR4789. Teach eliminateFrameIndex how to handle VLDRQ and VSTRQ which cannot fold any immediate offset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80191 91177308-0d34-0410-b5e6-96231b3b80d8 commit 511e71114c34c8ddae2b44b996502a5efe1adc3a Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 01:15:54 2009 +0000 Add missing declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80190 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12266adfd9dc571aafb7ec7f8b69d85c7a6e352a Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 00:51:57 2009 +0000 Sketch TargetRegistry support for MCCodeEmitter abstract interface. - Of course, nothing actually can provide this interface yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80188 91177308-0d34-0410-b5e6-96231b3b80d8 commit adb77e4c37d183af9a2f29b6df8b0dfee562bbba Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 27 00:38:04 2009 +0000 Try to make MSVC just a little happier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80187 91177308-0d34-0410-b5e6-96231b3b80d8 commit b59f15a1d2c40f978d93f43b006546f455a65f04 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 27 00:31:47 2009 +0000 X86FastISel support for loading and storing values of type i1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80186 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29b998f5248398e6cfe323a5ebd7419bb77975b4 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 27 00:14:12 2009 +0000 Expand i8 selects into control flow instead of 16-bit conditional moves. This avoids the need to promote the operands (or implicitly extend them, a partial register update condition), and can reduce i8 register pressure. This substantially speeds up code such as write_hex in lib/Support/raw_ostream.cpp. subclass-coalesce.ll is too trivial and no longer tests what it was originally intended to test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80184 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7bddb52ed1bb68e8c654c522b885f941c540d04 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Aug 26 23:35:33 2009 +0000 now that include/llvm/ADT/iterator.h.in is not attempted to be built, its prerequisite can go away too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80180 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5b99e6fa820047460b362d5d981766ac313b1ce Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 23:12:33 2009 +0000 Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80176 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2eff5fff4d600df3d29f74dd195bc564a48206b4 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Aug 26 22:59:05 2009 +0000 Regenerate configure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80173 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3eace462948ecfec5ee53127c445e4d0d5f1ae89 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Aug 26 22:55:19 2009 +0000 eliminate references to ADT/iterator.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80171 91177308-0d34-0410-b5e6-96231b3b80d8 commit d68b1af98ca9bb39ac51d046a37266ceb24e38b5 Author: Owen Anderson <resistor@mac.com> Date: Wed Aug 26 22:55:11 2009 +0000 Make this into a static method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80170 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f01e9983a054713a49d2ac2124e8ca26d128574 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Aug 26 22:50:39 2009 +0000 Fix bad length argument to substr calls. Apparently I'm the first one to attempt more than 2 constraints on an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80169 91177308-0d34-0410-b5e6-96231b3b80d8 commit 418706d9a8a304630ddecc3709598d823bee8188 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 22:49:51 2009 +0000 llvm-mc/Mach-O: Unique sections properly, so we don't get duplicate text sections, etc. - The quick and dirty way, just clone the TargetLoweringObjectFile code. Eventually this should be shared... somehow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80168 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ea86df7ddb44659fbf694934abb2177beed8637 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 22:13:22 2009 +0000 llvm-mc/Mach-O: Don't put assembler temporary labels in the symbol table. - I moved section creation back into AsmParser. I think policy decisions like this should be pushed higher, not lower, when possible (in addition the assembler has flags which change this behavior, for example). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80162 91177308-0d34-0410-b5e6-96231b3b80d8 commit b003759e247f0edb3b691849598ba252f51ae624 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Aug 26 22:12:02 2009 +0000 De-bork CMake build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80161 91177308-0d34-0410-b5e6-96231b3b80d8 commit e92cc8d5591cb7ded636c91cc98c741af62ec85f Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 26 21:44:57 2009 +0000 Rework getPersonalityIndex slightly - 0 is now a valid and not-NULL personality function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80153 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a1099a6809307eee7521b1f725ef89370f7ebd1 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Aug 26 21:36:59 2009 +0000 nobody includes llvm/ADT/iterator.h any more, so get rid of this monstrosity. iterator.h.in is scheduled for deletion in my working copy, but I wait till I see that configure gets regenerated, as it depends on it. I'll commit then. There are still some AC_* tests in the configure.ac dealing with iterators, those can be zapped probably too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80147 91177308-0d34-0410-b5e6-96231b3b80d8 commit c87d5ae938fe0c3b0afc3aefef1dc6a9873516e4 Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 26 21:30:49 2009 +0000 If we're emitting additional CIEs due to personality functions don't emit the default one. Explicitly check for the NULL CIE later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80146 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84603633a7609ec55de5d8145048efbbf45e5c9c Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 26 21:27:09 2009 +0000 Nuke trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80145 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8c4bb7da634d77a7f2cff601b8d3f53c143e9ad Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 21:22:22 2009 +0000 llvm-mc/Mach-O: Set .subsections_via_symbols flag properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80144 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87f46499f001931c031002473a73793772852e51 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Aug 26 21:00:34 2009 +0000 Don't submit test directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80139 91177308-0d34-0410-b5e6-96231b3b80d8 commit 441e205eb82a0ebd70b807d8560c5a76188eabc5 Author: Reid Kleckner <reid@kleckner.net> Date: Wed Aug 26 20:58:25 2009 +0000 Allocate the module provider in the Kaleidoscope code on the heap, not the stack, so that it can be properly deleted. Also update the tutorial with the new code. This fixes PR4762, hopefully better than the last time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80138 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4952aa5163ff4e87910d461f06316cc793ca95b8 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Aug 26 19:16:32 2009 +0000 Remove all the LLVM_COMPACTIFY_SENTINELS-related macro magic as discussed with Chris on IRC. Anybody wanting to debug sentinel dereferencing problems must revert this patch and perform the indicated modifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80128 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffefef35790db7819c72ba7e53c73b8e5931e851 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Wed Aug 26 18:37:05 2009 +0000 CMake: Removed outdated TODO. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80124 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66448030685cdc3c9bfd52449e4027258aaba480 Author: Venkatraman Govindaraju <venkatra@cs.wisc.edu> Date: Wed Aug 26 18:24:12 2009 +0000 Generate section for bss and enable weak symbols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80121 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a392c8714c745ffdc77da0a8589c7b0df03515f Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Aug 26 18:11:50 2009 +0000 Convert some more Neon tests to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80120 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e69950d5391bdf294b415bf39dd44f9f40556a1 Author: Dale Johannesen <dalej@apple.com> Date: Wed Aug 26 18:10:32 2009 +0000 Alter 79292 to produce output that actually assembles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80119 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23f2034aaff80f52b309ee17bfa7a9fc801c9677 Author: Mike Stump <mrs@apple.com> Date: Wed Aug 26 18:02:19 2009 +0000 Allow unsigned long long DenseMapInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80118 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1b88455b18224867a8d2fc6c3202b6ce12e0a1c Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Aug 26 17:39:53 2009 +0000 Remove unneeded ARM-specific DAG nodes for VLD* and VST* Neon operations. The instructions can be selected directly from the intrinsics. We will need to add some ARM-specific nodes for VLD/VST of 3 and 4 128-bit vectors, but those are not yet implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80117 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0defefd8ce9f13cecba8c988897c3224a25e96f8 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Aug 26 17:39:40 2009 +0000 Add extload expansion for f128 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80116 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e72169c1b197ef8c5b4c663e2eee4551a3a7178 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Aug 26 17:39:23 2009 +0000 Unbreak FP128 stuff in cbe git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80115 91177308-0d34-0410-b5e6-96231b3b80d8 commit 644cdc3c64cb485c6a21d1bfb126c107e5b40d64 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Wed Aug 26 17:05:06 2009 +0000 Ignore -fPIC test on Windows. Suggested by Yonggang Luo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80111 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8427b6b0529e66663737b39ea51a1fbdbbbbd534 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Aug 26 16:33:57 2009 +0000 Unbreak CMake build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80109 91177308-0d34-0410-b5e6-96231b3b80d8 commit 886f20275a78a1b03b83a8145a62f5e4cfbb1c99 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Aug 26 16:26:09 2009 +0000 Expand scalar_to_vector - we don't have any isel logic for it now git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80107 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75c687bcc528eb81dc693d63f7aff9185b29e56f Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 26 16:06:11 2009 +0000 Add comments detailing a known bug, so that people writing other backends don't use it as an example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80105 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32b17ffaa8593d25728c9ebad7e82a45c16f817c Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 26 15:57:57 2009 +0000 -fast is now -O0. -fast-isel is no longer experimental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80104 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4637d177299aed45c6be7ca24e003771f33fd5d6 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 26 15:56:38 2009 +0000 Move ProfileInfo::Edge's operator<< out of line. Among other benefits, this eliminates the ATTRIBUTE_USED, which wasn't being used in a manner acceptable to some GCC versions, according to the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80103 91177308-0d34-0410-b5e6-96231b3b80d8 commit a064a395489f954b0eaafb351d15b456699dea8e Author: Andreas Neustifter <astifter@gmx.at> Date: Wed Aug 26 15:18:38 2009 +0000 Bugfix for r80100, forgot include. Sorry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80101 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70eeb51888ed9e73d058a3b0c889c295219e2109 Author: Andreas Neustifter <astifter@gmx.at> Date: Wed Aug 26 15:13:44 2009 +0000 Implemented comments from Daniel Dunbar. (See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090817/084958.html) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80100 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9959b052347ceddec3576013485f2564b99b944e Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 26 14:59:13 2009 +0000 Don't use INSERT_SUBREG to model anyext operations on x86-64, as it leads to partial-register definitions. To help avoid redundant zero-extensions, also teach the h-register matching patterns that use movzbl to match anyext as well as zext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80099 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9927f829a68b645ed5813b25e21a881d94fc80d8 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 26 14:53:06 2009 +0000 Create a ScalarEvolution-based AliasAnalysis implementation. This is a simple AliasAnalysis implementation which works by making ScalarEvolution queries. ScalarEvolution has a more complete understanding of arithmetic than BasicAA's collection of ad-hoc checks, so it handles some cases that BasicAA misses, for example p[i] and p[i+1] within the same iteration of a loop. This is currently experimental. It may be that the main use for this pass will be to help find cases where BasicAA can be profitably extended, or to help in the development of the overall AliasAnalysis infrastructure, however it's also possible that it could grow up to become a directly useful pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80098 91177308-0d34-0410-b5e6-96231b3b80d8 commit 596114dc06489e5bd79e3e8ffc60d43bbf3668e3 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 26 14:34:12 2009 +0000 Fix a missing newline, now that Value's operator<< doesn't add one of its own. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80096 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84c793aef4170e0d5be4d2c6fcb26a9e56cad21b Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 26 14:32:17 2009 +0000 Use SetVector instead of std::set so that alias relations are tested and printed in a deterministic order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80095 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8fa9da2b34655a15102a0845617a9951ee945ed6 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 13:58:10 2009 +0000 llvm-mc/Mach-O: Add support for relocations. - I haven't really tried to find the "right" way to store the fixups or apply them, yet. This works, but isn't particularly elegant or fast. - Still no evaluation support, so we don't actually ever not turn a fixup into a relocation entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80089 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3c1992d46f418c45a8e0b5fdb3c452c90aa960e Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 13:57:54 2009 +0000 llvm-mc/Mach-O: Move symbol indices into the MCSymbolData structure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80088 91177308-0d34-0410-b5e6-96231b3b80d8 commit cefbda1f46cc612e074fdcc1d8aab712aba085e7 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 13:57:44 2009 +0000 llvm-mc/Mach-O: Dump relocations and section data (optionally) in my Mach-O dumper. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80087 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4486ac16542e9dd843778c5f684e1cd9d7bb3945 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 13:57:37 2009 +0000 llvm-mc: Add symbol entries for undefined symbols used in .fill and .org. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80086 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c672df8b969b7514438228bed80cfad6e9c473e Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Aug 26 13:44:29 2009 +0000 Add dummy inline asm handling for 'r' constraint. This fixes PR4778 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80085 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39fd40ae8671ecff6a1857b5a0156e52284c4e5c Author: Andreas Neustifter <astifter@gmx.at> Date: Wed Aug 26 13:33:09 2009 +0000 Moved isDeclaration() check further down to allow for function counts for declarations if necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80084 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92183c031a21857a580b38795272ce80863b9ebf Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 09:16:57 2009 +0000 llvm-mc: Change MCContext value table to take const MCSymbol*s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80079 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9d13ac6e4228451c6fe54566064978597aabc1b Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 09:16:46 2009 +0000 llvm-mc: Make MCValue take const MCSymbol*s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80078 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb73cfe2496d5e70d8cc4c89e7de29373b348353 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 09:16:34 2009 +0000 llvm-mc: Make non-sensical max bytes to .align an error. Also, warn about overflow in alignment values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80077 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e64a6cc0e75cf654fd23ac9ffa1a9a1d3d911e9 Author: Andreas Neustifter <astifter@gmx.at> Date: Wed Aug 26 09:05:21 2009 +0000 Changed std::cout to outs(), retaining formating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80076 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94060421ce73922e71c183fba0fda8bace7d0e2d Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 26 05:01:18 2009 +0000 Revert 79977. It causes llvm-gcc bootstrap failures on some platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80073 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66d02907de42fa311fb2b512e820277bb1a61e7c Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 26 05:00:16 2009 +0000 some mips and some sparc compilers apparently predefine mips and sparc respectively. Just overrule them :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80072 91177308-0d34-0410-b5e6-96231b3b80d8 commit 202ced1e32f5a88a8c865e62ea10c88a712c3fab Author: Venkatraman Govindaraju <venkatra@cs.wisc.edu> Date: Wed Aug 26 04:50:17 2009 +0000 test commit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80070 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3eb9a3f37ed8ee8e026d2dfebe6bae08df4e615d Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 04:28:45 2009 +0000 llvm-mc: Fix tests for python variations in int printing, sigh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80069 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53a9082d2e95f33980ef2b7f5104e0cc46d6342d Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 26 04:21:30 2009 +0000 fix some funky indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80068 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f56d41709c27ec2f0637e19881fefd90e31c22b Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 04:13:32 2009 +0000 llvm-mc/Mach-O: Add section padding where needed (to align the next section). Also, simplify some of Mach-O writer code which can now use section addresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80067 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3730b1a3de7fe37a660bd30d3d0d55bcea22d1d Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 02:48:04 2009 +0000 llvm-mc/Mach-O: Set addresses for symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80065 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fd6b0fff74a7c9fbc054b3303fee1a8f22002b2 Author: Dale Johannesen <dalej@apple.com> Date: Wed Aug 26 01:08:21 2009 +0000 Add an 'inline hint' attribute to represent source code hints that it would be a good idea to inline a function ("inline" keyword). No functional change yet; FEs do not emit this and inliner does not use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80063 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e1a5d0b91503b8d5ada9fe0b19567daca2f1c6f Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 26 00:39:50 2009 +0000 Add isClosure() predicate. This is used to add DW_AT_APPLE_block attribute. Patch by Caroline Tice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80061 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d294da8f845a8d611529759d194315b76b44a6e Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 00:18:21 2009 +0000 llvm-mc: Improve indirect symbol support (add the indirect index table). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80059 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b126fbc67c6279898f8ca0c31f233a3a56b31d9 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 26 00:13:22 2009 +0000 Remove unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80058 91177308-0d34-0410-b5e6-96231b3b80d8 commit bdd4dc67fb10d0f304bec21c924263f8444ae7a7 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 26 00:10:55 2009 +0000 llvm-mc: Add MCSection::isDefined() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80057 91177308-0d34-0410-b5e6-96231b3b80d8 commit 917614663633aa0ff1bdf7208862e8b7e25dd911 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 23:27:45 2009 +0000 Fix the InsertAtEnd form of ShuffleVectorInst constructor to use the correct type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80050 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6803b821738076b5b2299c1cd496be0d0042362 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 23:17:54 2009 +0000 Eliminate the unused Context argument on one of the ICmpInst and FCmpInst constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80049 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e46ac9407307942712236f8c91875ef323c182f Author: Gabor Greif <ggreif@gmail.com> Date: Tue Aug 25 23:02:21 2009 +0000 revert r78628 and r78803 as these are not needed any more git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80048 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58d95377713fa32cbf129e19f4005f4863f9cdb3 Author: Scott Michel <scottm@aero.org> Date: Tue Aug 25 22:37:34 2009 +0000 Updated i128 sext support for CellSPU backend, contributed by Ken Werner (IBM) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80042 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91bf99a35153b00098633f214207c308c52acdcd Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 22:29:08 2009 +0000 Use covariant return types for Instruction::clone, and eliminate the forms of ExtractElementInst and InsertElementInst that are equivalent to clone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80041 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97be9d37d93c38bc82950e0373cd3a8d1d2aa024 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 25 22:27:22 2009 +0000 Get rid of this horrible "benign race" by exploiting ManagedStatic to initialize the array on its first access. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80040 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba4fe8b91352f65caaf2a30f234b5006afd1cf2b Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 22:24:20 2009 +0000 This should use isIndenticalToWhenDefined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80039 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc00c4a2407c1b30a19fef9ec0a1ae00f7f7472d Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 22:11:20 2009 +0000 Rename Instruction::isIdenticalTo to Instruction::isIdenticalToWhenDefined, and introduce a new Instruction::isIdenticalTo which tests for full identity, including the SubclassOptionalData flags. Also, fix the Instruction::clone implementations to preserve the SubclassOptionalData flags. Finally, teach several optimizations how to handle SubclassOptionalData correctly, given these changes. This fixes the counterintuitive behavior of isIdenticalTo not comparing the full value, and clone not returning an identical clone, as well as some subtle bugs that could be caused by these. Thanks to Nick Lewycky for reporting this, and for an initial patch! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80038 91177308-0d34-0410-b5e6-96231b3b80d8 commit e73ff31d813cdc36e334404992c42bfef7842c95 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 25 21:31:39 2009 +0000 Revert last patch. We need to put this into TargetLowering. There will be a lot of EH stuff going into there, so we can wait to add them all then. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80036 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12d46f5ea460e149882e39dc25c649580a161141 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Aug 25 21:25:22 2009 +0000 re-committing yesterday's r79938. This time there is no additional include of llvm/Config/config.h at all. Instead I use a hard-coded preprecessor symbol: LLVM_COMPACTIFY_SENTINELS (should this work on the self-hosting buildbot, then cleanups come next) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80035 91177308-0d34-0410-b5e6-96231b3b80d8 commit b81243240cbfc573324c9760a77e6b1463955bab Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 25 21:10:45 2009 +0000 llvm-mc: Add statistic for number of fragments emitted by the assembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80033 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f61e5051fa25f4abb928573db6ea52585748b93 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 25 21:09:50 2009 +0000 Add the #include here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80032 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b90952a9dd2b26ef6dd359cb8e4f7139e40f864 Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 25 21:01:56 2009 +0000 remove some dead lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80031 91177308-0d34-0410-b5e6-96231b3b80d8 commit 538dfe54dd1c732208b2dbb00057b0a58cdeb61e Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 25 21:01:42 2009 +0000 Comment formatting. Removing of unused #include and type forwarding. OCD is fun! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80030 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2db1075b5a1bf1ea8f2d2c618917651150b8a94 Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 25 20:57:38 2009 +0000 convert to filecheck style git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80029 91177308-0d34-0410-b5e6-96231b3b80d8 commit 864504a5810fdfd23e1774de0b935dcdafb91645 Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 25 20:49:04 2009 +0000 convert to filecheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80025 91177308-0d34-0410-b5e6-96231b3b80d8 commit e371d63e2a817eda5e3563eb574c99fa08df7e6d Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 25 20:21:17 2009 +0000 Add a target asm info hook to specify that particular bits of data in the FDE should be forced to 32-bits (.long) even on 64-bit architectures. Darwin wants these bits to be 64-bits (.quad). However, other platforms may disagree. This is just the info right now and is part of a work-in-progress which needs this. We'll add the actual *use* of this soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80024 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0b96906a0018edbadd9f4f3b17b48ec3c29838e Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 25 20:21:09 2009 +0000 EXIT STAGE LEFT: gccas, gccld git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80023 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13808ef92db201ec027004b4fd8eb2db55c5aae4 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Tue Aug 25 19:39:05 2009 +0000 Start refactoring PIC16 TargetObjectFile code. Eventually, all the stuff from PIC16Section will move to MCSectionPIC16. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80021 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1d423e0cccd3f78122a5e8c9e959c8569b23bb0 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 25 18:45:03 2009 +0000 Switch abi-isel.ll to FileCheck; it's not much faster, but it now tests a lot more and is much nicer to the OS. - Dan, please check. If there are parts of the test you think I should strip out so it doesn't cause random failures let me know (there are still some PIC label numbers in it, for example). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80019 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d99646fa9e8847b0ceb086e33a24ed707491684 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 17:56:57 2009 +0000 Don't assume that two identical instructions that read from memory will always return the same value. This isn't currently necessary, since this code doesn't currently ever get called under circumstances where it would matter, but it may some day. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80017 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82d30b73d3a37de0ec7960a4e099ef9e255d4f11 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Aug 25 17:52:39 2009 +0000 Remove some unused SDNode definitions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80015 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bba145cbd5935b442e6a197eda3477f5d1372a5 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 17:49:57 2009 +0000 Teach ScalarEvolution about GlobalAliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80014 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c17fd9fbdcfebe29c7ea59c2c7675e420aa49f5 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 17:48:17 2009 +0000 Delete some unnecessary flushes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80013 91177308-0d34-0410-b5e6-96231b3b80d8 commit 814c2eaa0121afd0661d8a2b5f715fcb1174f0b5 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 17:47:44 2009 +0000 Use X86II::MO_NO_FLAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80012 91177308-0d34-0410-b5e6-96231b3b80d8 commit 316062a4d193609d98e80e64389fc2094ad8c515 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Aug 25 17:46:06 2009 +0000 Expose the instruction contraint string as an argument to the NLdSt class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80011 91177308-0d34-0410-b5e6-96231b3b80d8 commit 208278cfa708aa6e5fcca6d1b92ee780beb72a8c Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 17:42:10 2009 +0000 Special-case static allocas in IndVarSimplify's loop invariant sinking code, since they are special. If the loop preheader happens to be the entry block of a function, don't sink static allocas out of it. This fixes PR4775. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80010 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36ed6c0368d77188063d1594e54c52df1438ae87 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 25 17:42:07 2009 +0000 Comment-ify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80009 91177308-0d34-0410-b5e6-96231b3b80d8 commit 845a722eb435c2a9c0528b13a472e595340b6dd8 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 25 17:35:37 2009 +0000 Switch to SmallVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80007 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2845c6f885c8c7615610ab8494f7535a8f67334c Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 25 17:26:32 2009 +0000 Pull out this predicate loop into a helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80006 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9c16fe7d4d2b61191b362a5d073bdc95c123c0f Author: David Goodwin <david_goodwin@apple.com> Date: Tue Aug 25 17:03:05 2009 +0000 Fixup register kills after scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80002 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9518d88d270c05fb576604fc813405de177e2e34 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Aug 25 17:00:23 2009 +0000 Provide dynamic_stackalloc lowering for MSP430. This fixes PR4769 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80001 91177308-0d34-0410-b5e6-96231b3b80d8 commit b802d676875f2df286887be83419649770dd8580 Author: Edwin Török <edwintorok@gmail.com> Date: Tue Aug 25 16:53:15 2009 +0000 Remove target triple from this test, it fails on x86-64 with --enable-targets=host-only otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80000 91177308-0d34-0410-b5e6-96231b3b80d8 commit e577ff861e934b98cb950a0b0d32d0a9a1dce8b1 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 16:00:35 2009 +0000 Allocate the basic types inside the LLVMContextImpl instance, rather than separately with new. Move the members above the TypeMap members to avoid destruction order issues. This fixes a leak of these objects, and eliminates an extra level of indirection in Type::getInt32Ty and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79997 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87489cff37dde33a9dbb37fbfbad46ce2f70c8af Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 15:54:01 2009 +0000 Update documentation for the -f change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79996 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0e89b2e414df522132636eb256ecbcc2d01a4e8 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 15:45:44 2009 +0000 Fix a few typos from the removal of -f. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79994 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d65d35d9233277aee7c8a6d3643740e3ed29f0b Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 15:38:29 2009 +0000 Remove obsolete -f flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79992 91177308-0d34-0410-b5e6-96231b3b80d8 commit 176426d2102142aaa0bf19aca55f528ceb873329 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 25 15:34:52 2009 +0000 Make LLVM command-line tools overwrite their output files without -f. This is conventional command-line tool behavior. -f now just means "enable binary output on terminals". Add a -f option to llvm-extract and llvm-link, for consistency. Remove F_Force from raw_fd_ostream and enable overwriting and truncating by default. Introduce an F_Excl flag to permit users to enable a failure when the file already exists. This flag is currently unused. Update Makefiles and documentation accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79990 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c949d7c548ed4ec883a2c8bd922607be2563f5a Author: Andreas Neustifter <astifter@gmx.at> Date: Tue Aug 25 12:53:27 2009 +0000 Read profile files as binary as proposed in http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-August/025020.html. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79983 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9112f5f6755a85f10036ff20741fc264622dc14a Author: Xerxes Ranby <xerxes@zafena.se> Date: Tue Aug 25 10:12:55 2009 +0000 Fix PR4772 ARM JIT.GlobalInFuction unittest by explicitly initialize MMI to 0 during JITEmitter constructor. Modified: lib/ExecutionEngine/JIT/JITEmitter.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79982 91177308-0d34-0410-b5e6-96231b3b80d8 commit a75796301ee17e60daea754e30a035a53891650d Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 25 08:08:33 2009 +0000 - Rename EmitCommonInformationEntry to EmitCIE. - Rename EmitFunctionDescriptionEntry to EmitFDE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79981 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57b83c78f56324e3a8ff636b311235f6f2350b4e Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 25 05:24:07 2009 +0000 Update DebugInfo interface to use metadata, instead of special named llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well. This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79977 91177308-0d34-0410-b5e6-96231b3b80d8 commit bcc93309ca3632b3cd2b45f265a534256be7589a Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 25 02:32:05 2009 +0000 - Emit new line after each FDE. - Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79971 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4767b24840250630c47fee8be2a6aef07f19d30a Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 25 02:27:42 2009 +0000 Rename functions to something more descriptive. At the very least mention the CIE and FDE in their names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79969 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30d4d765dfc6d01bc4c1d6934582050106bcceba Author: Dale Johannesen <dalej@apple.com> Date: Tue Aug 25 01:13:58 2009 +0000 Allow multiple occurrences of -inline-threshold on the command line. This gives llvm-gcc developers a way to control inlining (documented as "not intended for end users"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79966 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06b990c5b3f32505188e52be1b70b38290f81b83 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 25 00:54:39 2009 +0000 Handle a corner case when extracing code regions where one of the immediate successor of an extracted block contains a PHI using a value defined in the extracted region. With this patch, the partial inliner now passes MultiSource/Applications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79963 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1f04ecf6e5af3aa7c4c59077486c9cb29df20ea Author: Dale Johannesen <dalej@apple.com> Date: Tue Aug 25 00:16:14 2009 +0000 Fix PR 4751, another difficulty with %a modifier on x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79961 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09220a24f7845a078fb41c61ee909eed6c94a255 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 25 00:05:04 2009 +0000 --- Reverse-merging r79938 into '.': U include/llvm/BasicBlock.h U include/llvm/ADT/ilist_node.h U include/llvm/ADT/ilist.h U include/llvm/CodeGen/SelectionDAG.h U include/llvm/CodeGen/MachineFunction.h U include/llvm/CodeGen/MachineBasicBlock.h U include/llvm/Function.h Revert r79938. It was causing self-hosting build failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79960 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2942e63abf0b485e88c21a9fc96bfb13754ed41 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Tue Aug 25 00:02:29 2009 +0000 CMake: updated list of source files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79959 91177308-0d34-0410-b5e6-96231b3b80d8 commit 399ece6621d316d7378e5fc13bd030e5572f03ce Author: Scott Michel <scottm@aero.org> Date: Mon Aug 24 23:57:35 2009 +0000 - Remove SelectSEXTi128 from SPUISelDAGToDAG.cpp, evidently, this is redundant code, according to Anton (I'm not totally convinced, but we can always resurrect patches if we need to do so.) - Start moving CellSPU's tests to prefer FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79958 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27dad5a41e0b0fa8fd5cba2e6f5dd70b82689e76 Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 24 23:32:14 2009 +0000 When extracting SEME regions of code, the extractor needs to update the dominator tree for split return blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79957 91177308-0d34-0410-b5e6-96231b3b80d8 commit 316e6fb92b997dfa4db655a371d5699cbcac0473 Author: Scott Michel <scottm@aero.org> Date: Mon Aug 24 22:49:22 2009 +0000 Prefer 'FileCheck' over 'grep'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79953 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36173e27ebfe4da907c17f2b507a9df3415a3aad Author: Scott Michel <scottm@aero.org> Date: Mon Aug 24 22:28:53 2009 +0000 128-bit sign extension and vector shift cleanups, contributed by Ken Werner (IBM). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79949 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73ab81726b384015ac9bfe7f734fc13b93297c4c Author: Scott Michel <scottm@aero.org> Date: Mon Aug 24 21:53:27 2009 +0000 Initialize ShufBytes, as gcc 4.4 can't detect that the entire array is initialized and a warning about a potentially unintialized variable is generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79946 91177308-0d34-0410-b5e6-96231b3b80d8 commit af26e32df3f129ac906a45c4527b5ee3641cb22d Author: Andreas Neustifter <astifter@gmx.at> Date: Mon Aug 24 21:41:37 2009 +0000 Add llvm_start_edge_profiling to exported symbols for libprofile_rt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79944 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92b39ace140de279245e80d0465528933787c7e4 Author: Andreas Neustifter <astifter@gmx.at> Date: Mon Aug 24 21:37:48 2009 +0000 This patch cleans up the ProfileInfo by *) introducing new data type and export function of edge info for whole function (preparation for next patch). *) renaming variables to make clear distinction between data and containers that contain this data. *) updated comments and whitespaces. *) made ProfileInfo::MissingValue a double (as it should be...). (Discussed at http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090817/084955.html.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79940 91177308-0d34-0410-b5e6-96231b3b80d8 commit c19dfb9d25347b815512bba5eb64052708e4c183 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Aug 24 21:34:17 2009 +0000 Resubmit an earlier patch of mine: reduce the size of relevant "ghostly" sentinels by a pointer. This attempt now makes the compactification dependent on the configure variable LLVM_COMPACT_SENTINELS and should not cause any bootstrap failures for llvm-gcc any more. Please note that this is not yet the final version, and (as settled with Chris) I shall take out the autofoo/cmake portions in the next days. This will also lose the assertability on sentinel dereferencing and operator++, but that seems an acceptable price to pay for the simplified build logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79938 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2f99910fba8818270e41e75f4b127d82a2082a6 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Aug 24 21:17:17 2009 +0000 Fix a typo. Somehow I thought this had passed before, but I guess not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79937 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5c686b114bf6ac6b3137f96bc59ffb2e8e20de6 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Aug 24 21:00:10 2009 +0000 prune ignores: AutoGenerated.inc is no more git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79936 91177308-0d34-0410-b5e6-96231b3b80d8 commit cacea03dbaca34b44783243898ef2274bd71e72e Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Aug 24 20:33:47 2009 +0000 Convert slow test to use FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79935 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8551a303173101cf595dc35200eea7da37e769d4 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 24 20:08:27 2009 +0000 Convert two gratuitous abuses of poor helpless CPU cycles to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79933 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9640223f05f0257603a0138c1ea8cb59c7f5acc Author: Dale Johannesen <dalej@apple.com> Date: Mon Aug 24 17:51:19 2009 +0000 Split test into 3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79926 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0151d0e9f948b39e55944b5cad64fb33732af25 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 24 11:56:58 2009 +0000 llvm-mc/Mach-O: Preliminary support for indirect symbols. - The indirect table itself isn't being filled in yet. - This isn't factored properly and is rather FIXMEd, but at the moment I'm more focused on figuring out what it needs to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79910 91177308-0d34-0410-b5e6-96231b3b80d8 commit b69f053e0d5af3463d1bbf2101e5c1431cca6fee Author: Duncan Sands <baldrick@free.fr> Date: Mon Aug 24 10:59:01 2009 +0000 Fix the build when using gcc-4.4 on linux. Header needed for stderr and fprintf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79909 91177308-0d34-0410-b5e6-96231b3b80d8
Note: This README/NEWS file refers to the source tarball. Some things described
here may not be available in binary packages.
--
0.95.2
------
This version improves handling of archives, adds support for --file-list
in clamscan and clamdscan, and fixes various issues found in previous
releases.
--
The ClamAV team (http://www.clamav.net/team)
0.95.1
------
This is a bugfix release only, please see the ChangeLog for details.
--
The ClamAV team (http://www.clamav.net/team)
0.95
----
ClamAV 0.95 introduces many bugfixes, improvements and additions. To make
the transition easier, we put various tips and upgrade notes on this page:
https://wiki.clamav.net/Main/UpgradeNotes095. For detailed list of changes
and bugfixes, please see the ChangeLog.
The following are the key features of this release:
- Google Safe Browsing support: in addition to the heuristic and signature
based phishing detection mechanisms already available in ClamAV, the
scanner can now make use of the Google's blacklists of suspected
phishing and malware sites. The ClamAV Project distributes a constantly
updated Safe Browsing database, which can be automatically fetched by
freshclam. For more information, please see freshclam.conf(5) and
http://safebrowsing.clamav.net.
- New clamav-milter: The program has been redesigned and rewritten from
scratch. The most notable difference is that the internal mode has been
dropped which means that now a working clamd companion is required.
The milter now also has its own configuration file.
- Clamd extensions: The protocol has been extended to lighten the load
that clamd puts on the system, solve limitations of the old protocol,
and reduce latency when signature updates are received. For more
information about the new extensions please see the official
documentation and the upgrade notes.
- Improved API: The API used to program ClamAV's engine (libclamav) has
been redesigned to use modern object-oriented techniques and solves
various API/ABI compatibility issues between old and new releases.
You can find more information in Section 6 of clamdoc.pdf and in
the upgrade notes.
- ClamdTOP: This is a new program that allows system administrators to
monitor clamd. It provides information about the items in the clamd's
queue, clamd's memory usage, and the version of the signature database,
all in real-time and in nice curses-based interface.
- Memory Pool Allocator: Libclamav now includes its own memory pool
allocator based on memory mapping. This new solution replaces the
traditional malloc/free system for the copy of the signatures that
is kept in memory. As a result, clamd requires much less memory,
particularly when signature updates are received and the database is
loaded into memory.
- Unified Option Parser: Prior to version 0.95 each program in ClamAV's
suite of programs had its own set of runtime options. The new general
parser brings consistency of use and validation to these options across
the suite. Some command line switches of clamscan have been renamed
(the old ones will still be accepted but will have no effect and will
result in warnings), please see clamscan(1) and clamscan --help for
the details.
--
The ClamAV team (http://www.clamav.net/team)
0.94.2
------
This is a bugfix release, please refer to the ChangeLog for a complete
list of changes.
--
The ClamAV team (http://www.clamav.net/team)
0.94.1
------
ClamAV 0.94.1 fixes some issues that were found in previous releases and
includes one new feature, "Malware Statistics Gathering." This is an optional
feature that allows ClamAV users optionally to submit statistics to us about
what they detect in the field. We will then use these data to determine what
types of malware are the most detected in the field and in what geographic
area they are. It will also allow us to publish summary data on www.clamav.net
where our users will be able to monitor the latest threats. You can help us
by enabling SubmitDetectionStats in freshclam.conf.
For more details, please refer to the ChangeLog and
http://www.clamav.net/press/0.94.1-WhatsNew.pdf
--
The ClamAV team (http://www.clamav.net/team)
0.94
----
Sourcefire and the ClamAV team are pleased to announce the release of
ClamAV 0.94. The following are the key features and improvements of this
version:
- Logical Signatures: The logical signature technology uses operators
such as AND, OR and NOT to allow the combination of more than one
signature into one entry in the signature database resulting in
more detailed and flexible pattern matching.
- Anti-phishing Technology: Users can now change the priority and reporting
of ClamAV's heuristic anti-phishing scanner within the detection engine
process. They can choose whether, when scanning a supicious file, ClamAV
should stop scanning and report the phish, or continue to scan in case the
file contains other malware (clamd: HeuristicScanPrecedence,
clamscan: --heuristic-scan-precedence)
- Disassembly Engine: The initial version of the disassembly engine improves
ClamAV's detection abilities.
- PUA Detection: Users can now decide which PUA signatures should be loaded
(clamd: ExcludePUA, IncludePUA; clamscan: --exclude-pua, --include-pua)
- Data Loss Prevention (DLP): This version includes a new module that, when
enabled, scans data for the inclusion of US formated Social Security
Numbers and credit card numbers (clamd: StructuredDataDetection,
clamscan: --detect-structured; additional fine-tuning options are available)
- IPv6 Support: Freshclam now supports IPv6
- Improved Scanning of Scripts: The normalization of scripts now covers
JavaScript
- Improved QA and Unit Testing: The improved QA process now includes
API testing and new library of test files in various formats that are
tested on a wide variety of systems (try running 'make check' in the source
directory)
For more details, please refer to http://www.clamav.net/press/0.94-WhatsNew.pdf
and to the ChangeLog.
You may need to run 'ldconfig' after installing this version.
** This version drops the special support for Cygwin. Our QA process showed
** serious problems with ClamAV builds under Cygwin due to some low-level
** incompatibilities in the POSIX compatibility layer, resulting in unreliable
** ClamAV behaviour.
--
The ClamAV team (http://www.clamav.net/team)
0.93.3
------
This release fixes a problem in handling of .cld files introduced in 0.93.2.
--
The ClamAV team (http://www.clamav.net/team)
0.93.2
------
This release fixes and re-enables the Petite unpacker, improves database
loading and solves some other minor issues.
0.93.1
------
This version improves handling of PDF, CAB, RTF, OLE2 and HTML files
and includes various bugfixes for 0.93 issues.
--
The ClamAV team (http://www.clamav.net/team)
0.93
----
This release introduces many new features and engine enhancements, please
see the notes below for the list of major changes. The most visible one
is the new logic in scan limits which affects some command line and config
options of clamscan and clamd. Please see clamscan(1) and clamd.conf(5)
and the example config file for more information on the new options.
Most important changes include:
* libclamav:
- New logic in scan limits: provides much more efficient protection against
DoS attacks but also results in different command line and config options
to clamscan and clamd (see below)
- New/improved modules: unzip, SIS, cabinet, CHM, SZDD, text normalisator,
entity converter
- Improved filetype detection; filetype definitions can be remotely updated
- Support for .cld containers (which replace .inc directories)
- Improved pattern matcher and signature formats
- More efficient scanning of HTML files
- Many other improvements
* clamd:
- NEW CONFIG FILE OPTIONS: MaxScanSize, MaxFileSize, MaxRecursion, MaxFiles
- ** THE FOLLOWING OPTIONS ARE NO LONGER SUPPORTED **: MailMaxRecursion,
ArchiveMaxFileSize, ArchiveMaxRecursion, ArchiveMaxFiles,
ArchiveMaxCompressionRatio, ArchiveBlockMax
* clamscan:
- NEW CMDLINE OPTIONS: --max-filesize, --max-scansize
- REMOVED OPTIONS: --block-max, --max-space, --max-ratio
* freshclam:
- NEW CONFIG OPTION CompressLocalDatabase
- NEW CMDLINE SWITCH --no-warnings
- main.inc and daily.inc directories are no longer used by ClamAV; please
remove them manually from your database directory
--
The ClamAV team (http://www.clamav.net/team)
0.92.1
------
This is a bugfix release, please refer to the ChangeLog for a complete
list of changes.
--
The ClamAV team (http://www.clamav.net/team)
0.92
----
This release provides various bugfixes, optimisations and improvements
to the scanning engine. The new features include support for ARJ and
SFX-ARJ archives, AutoIt, basic SPF parser in clamav-milter (to reduce
phishing false-positives), faster scanning and others (see ChangeLog).
To get a consistent behaviour of the anti-phishing module on all platforms,
libclamav now includes the regex library from OpenBSD.
--
The ClamAV team (http://www.clamav.net/team)
0.91.2
-------
This release fixes various bugs in libclamav, freshclam and clamav-milter,
and adds support for PUA (Potentially Unwanted Application) signatures
(clamscan: --detect-pua, clamd: DetectPUA).
** Announcement **
Dear ClamAV users,
On August 17, Sourcefire, the creators of Snort, acquired the ClamAV project.
The full announcement is available here:
http://www.sourcefire.com/products/clamav/
We'd like to thank everyone in the ClamAV community for their dedication to
the project. The acquisition by Sourcefire is a testament to the hard work of
the entire ClamAV community in developing cutting edge technology that truly
showcases the promise of the open source model. With the additional resources
Sourcefire will provide we look forward to working with the community to
continue the advancement of ClamAV.
Sourcefire now owns ClamAV project and related trademarks, as well as the
source code copyrights held by the five principal members of the ClamAV team.
Sourcefire will also assume control of the ClamAV project including: the
ClamAV.org domain, web site and web site content; and the ClamAV Sourceforge
project page.
What's most important is that from the end-user perspective very little will
change beyond the additional resources Sourcefire will provide in our
continued efforts to advance the ClamAV technology and improve our ability to
interact with the open source community. The core team will continue to lead
the advancement of ClamAV and the CVD as employees of Sourcefire. Both the
ClamAV engine and the signature database will remain under GPL.
For more information please visit our website and the following FAQ page:
http://www.clamav.net/support/sf-faq
--
The ClamAV team (http://www.clamav.net/team)
0.91.1
------
This release fixes stability and other issues of 0.91.
--
The ClamAV team (http://www.clamav.net/team)
0.91
----
ClamAV 0.91 is the first release to enable the anti-phishing technology
in default builds. This technology combines heuristics with special
signatures and provides effective protection against phishing threats.
Other important changes and add-ons in this version include:
- unpacker for NSIS (Nullsoft Scriptable Install System) self-extracting
archives
- unpacker for ASPack 2.12
- new implementation of the Aho-Corasick pattern matcher providing
better detection for wildcard enabled signatures
- support for nibble matching and floating offsets
- improved handling of .mdb files (fixes long startup times)
- extraction of PE files embedded into other executables
- better handling of PE & UPX
- removed dependency on libcurl (improves stability)
- libclamav.dll available under Windows
- IPv6 support in clamav-milter
- many other improvements and bugfixes
--
The ClamAV team (http://www.clamav.net/team)
0.90.3
------
This release fixes some security bugs in libclamav and improves stability
under Solaris. Please see ChangeLog for complete list of changes.
If your system is suffering from long clamscan startup times, please
consider installing 0.91rc1 which is due to be released shortly
after 0.90.3.
--
The ClamAV team (http://www.clamav.net/team)
0.90.2
------
This release fixes many problems in libclamav and freshclam.
--
The ClamAV team (http://www.clamav.net/team)
0.90.1
------
This release includes various bugfixes and code enhancements. Please
see ChangeLog for complete list of changes.
** Important note **: please run 'ldconfig' after installing this version.
--
The ClamAV team (http://www.clamav.net/team)
0.90
----
The ClamAV team is proud to announce the long awaited ClamAV 0.90.
This version introduces lots of new interesting features and marks
a big step forward in the development of our antivirus engine.
The most important change is the introduction of scripted updates.
Instead of transferring the whole cvd file at each update, only the
differences between the latest cvds and the previous versions will be
transferred.
In case the local copy of the latest cvd is corrupted or the scripted
update fails for some reason, freshclam will fallback to the old method.
Similarly to cvd files, scripted updates are compressed and digitally signed
and are already being distributed. They will dramatically reduce traffic on
our mirrors and will allow us to release even more updates in the future.
Another noticeable change is the new configuration syntax: you can now turn
single options on and off, the old crude hack of "DisableDefaultScanOptions"
is no longer required.
Cosmetic changes apart, the 0.9x series introduces lots of new code, but some
parts are not compiled in by default because they are not ready for production
systems yet. You are encouraged to pass the --enable-experimental flag to
./configure when compiling ClamAV. The experimental code introduces many
improvements in terms of detection rate and performances. If you find a bug,
please take some time to report it on our bugzilla: http://bugs.clamav.net.
Your help in testing the new code is really appreciated. The experimental code
introduces many improvements in terms of detection rate and performances.
RAR3, SIS and SFX archives support is finally available together with
new unpackers and decryptors: pespin, sue, yc, wwpack32, nspack, mew, upack
and others. Additionally, ClamAV now includes better mechanisms for scanning
ELF, PDF and tar files. The email decoding has been improved to reduce both
the memory requirements and the time taken to process attachments.
As part of the Google Summer of Code program, we have introduced support for
a new phishing signatures format that has proved very effective in detecting
phishing emails. The ClamAV phishing module allows better and more generic
detection of phishing emails by searching for URLs in email messages, and
comparing the real site with the URL displayed to the user in the message.
On the performance side, support for the MULTISCAN command has been
implemented in clamd, allowing to scan multiple files simultaneously.
Support for Sensory Networks' NodalCore acceleration technology
(http://www.clamav.net/nodalcore/) is now available in ClamAV and will be
compiled in if the ncore libraries are detected at compile time. NodalCore
acceleration allows highly improved scan speeds on systems equipped with
NodalCore cards.
Detailed list of changes:
-) libclamav:
+ New unpacker for RAR3, RAR2 and RAR1
+ Rewritten unpackers for Zip and CAB files
+ Support for RAR-SFX, Zip-SFX and CAB-SFX archives
+ New PE parsing model:
- Accurate virtual and raw size and offset calculations
- Proper parsing of executables with weird/handcrafted/uncommon headers
- Proper handling (or skipping) of ghost sections at various places in the
code
- Rebuild improvements for various unpackers
- Adjusted alignment on rebuilt executables
- Proper handling of out of sections offsets
- Broken exe detection now mimics the XPSP2 loader
- Lots of misc improvements and fixes
+ Support for PE32+ (64-bit) executables
+ Support for MD5 signatures based on PE sections (.mdb)
+ ELF file parser
+ Support for Sensory Networks' NodalCore hardware acceleration technology
+ Advanced phishing detection module (experimental)
+ Signatures are stored in separate trees depending on their target type
+ Algorithmic detection can be controlled with CL_SCAN_ALGORITHMIC
+ Support for new obfuscators: SUE, Y0da Cryptor, CryptFF
+ Support for new packers: NsPack, wwpack32, MEW, Upack
+ Support for SIS files (SymbianOS packages)
+ Support for PDF and RTF files
+ New encoding and entity normalizer (experimental)
-) clamd:
+ New config file parser:
* all options require arguments (options without args must be now followed
by boolean values: (yes, no), (1, 0), or (true, false)
* optional arguments (as in NotifyClamd) are no longer supported
* removed "DisableDefaultScanOptions" option (scan options can be
configured individually)
+ TCP and local sockets can be operated simultaneously
+ New command: MULTISCAN (scan directory with multiple threads)
+ New option AlgorithmicDetection
+ New option ScanELF
+ New option NodalCoreAcceleration (requires hardware accelerator)
+ New option PhishingSignatures
+ New options to control the phishing module:
- PhishingRestrictedScan
- PhishingScanURLs
- PhishingAlwaysBlockSSLMismatch
- PhishingAlwaysBlockCloak
-) clamav-milter:
+ Black list mode: optionally black lists an IP for a configurable amount
of time
+ Black hole mode: detects emails that will be discarded and refrains from
scanning them
+ Reporting: ability to report phishing attempts to anti-phishing
organisations to help close the sites
+ Improved load balancing for scanning with clusters
+ Removed -b option (enable BOUNCE compile time option to re-enable the
option)
-) clamscan:
+ New options: --no-phishing-sigs, --no-algorithmic (disable phishing and
algorithmic detection respectively)
+ New options to control the phishing module: --no-phishing-scan-urls,
--no-phishing-restrictedscan, --phishing-ssl, --phishing-cloak
+ New option: --ncore (requires hardware accelerator)
+ New option: --no-elf
+ New option: --copy
-) freshclam:
+ Interpreter for .cdiff files (scripted updates)
+ Initial version of mirror manager
+ New option: --list-mirrors (list details on mirrors accessed by the mirror
manager)
+ New option HTTPUserAgent to force different User-Agent header
-) sigtool:
+ New option: --utf16-decode (decode UTF16 encoded files)
+ New options: --diff, --run-cdiff, --verify-cdiff (update script management)
+ New option: --mdb (generated .mdb compatible signatures)
-) clamconf: initial version of configuration utility for clamd and freshclam
We are happy to announce new interesting software with support for ClamAV:
+ AqMail - a POP3 client with additional filtering
+ ClamFS - a FUSE-based file system with on-access anti-virus scanning
+ c-icap - an ICAP server coded in C with support for ClamAV
+ MailCleaner - a complete email filtering gateway
+ mod_streamav - a ClamAV based antivirus filter for Apache 2
+ pyClamd - a python interface to Clamd
More information at http://www.clamav.net/download/third-party-tools/
--
The ClamAV team (http://www.clamav.net/team)
0.88.7
------
This version improves scanning of mail and tar files.
--
The ClamAV team (http://www.clamav.net/team)
0.88.6
------
Changes in this release include better handling of network problems in
freshclam and other minor bugfixes.
The ClamAV developers encourage all users to give a try to the latest
beta version of 0.90!
--
The ClamAV team (http://www.clamav.net/team)
0.88.5
------
This version fixes a crash in the CHM unpacker and a heap overflow in the
function rebuilding PE files after unpacking.
--
The ClamAV team (http://www.clamav.net/team)
0.88.4
------
This release fixes a possible heap overflow in the UPX code.
See security information at: http://www.clamav.net/2006/08/07/security-fixes-in-0884
--
The ClamAV team (http://www.clamav.net/team)
0.88.3
------
This version fixes handling of large binhex files and multiple alternatives in
virus signatures.
--
The ClamAV team (http://www.clamav.net/team)
0.88.2
------
This release improves virus detection, fixes zip handling on 64-bit
architectures and possible security problem in freshclam.
Following the 0.88.1 release some portals and security related websites
published incorrect information on security problems of 0.88. To avoid
such incidents in the future, every new ClamAV package will be released
together with detailed information about security bugs it fixes. Details
for this version can be found here:
http://www.clamav.net/2006/08/07/security-fixes-in-0884
--
The ClamAV team (http://www.clamav.net/team)
0.88.1
------
This version fixes a number of minor bugs and provides code updates
to improve virus detection.
--
The ClamAV team (http://www.clamav.net/team)
0.88
----
A possible heap overflow in the UPX code has been fixed. General improvements
include better zip and mail processing, and support for a self-protection mode.
The security of the UPX, FSG and Petite modules has been improved, too.
--
The ClamAV team (http://www.clamav.net/team)
0.87.1
------
This release includes major bugfixes for problems with handling TNEF
attachments, cabinet files and FSG compressed executables.
--
The ClamAV team (http://www.clamav.net/team)
0.87
----
This version fixes vulnerabilities in handling of UPX and FSG compressed
executables. Support for PE files, Zip and Cabinet archives has been improved
and other small bugfixes have been made. The new option "--on-outdated-execute"
allows freshclam to run a command when system reports a new engine version.
--
The ClamAV team (http://www.clamav.net/team)
0.86.2
------
Changes in this release include fixes for three possible integer overflows
in libclamav, improved scanning of Cabinet and FSG compressed files, better
database handling in clamav-milter, and others.
--
The ClamAV team (http://www.clamav.net/team)
0.86.1
------
A possible crash in the libmspack's Quantum decompressor has been fixed.
--
The ClamAV team (http://www.clamav.net/team)
0.86
----
This release introduces a number of bugfixes and cleanups. Possible descriptor
leaks in archive unpackers and mishandling of fast track uuencoded files have
been fixed in libclamav. Database reloading in clamav-milter has been improved.
--
The ClamAV team (http://www.clamav.net/team)
0.85.1
------
A problem where an email with more than one content-disposition type line,
one or more of which was empty, could crash libclamav has been fixed. Other
minor bugfixes have been made.
--
The ClamAV team (http://www.clamav.net/team)
0.85
----
Bugfixes in this release include correct signature offset calculation in large
files, proper handling of encrypted zip archives, and others.
--
The ClamAV team (http://www.clamav.net/team)
0.84
----
This version improves detection of JPEG (MS04-028) based exploits, introduces
support for TNEF files and new detection mechanisms. Various bugfixes
(including problems with scanning of digest mail files) and improvements
have been made.
** We encourage users to help testing the development versions, now with **
** rewritten RAR code and support for 3.0 archives! **
** http://www.clamav.net/snapshot/ **
-) libclamav:
+ JPEG exploit detector now also checks embedded Photoshop thumbnail images
+ archive meta-data scanner (improves malware detection within encrypted
archives)
+ support for TNEF (winmail.dat) decoding
+ support for all tar archive formats
+ MD5 implementation replaced with a slightly faster one
+ improved database reloading with reference counter
+ database updateable false positive eliminator
+ speed improvements
+ various bugfixes
-) clamd:
+ VirusEvent now sets CLAM_VIRUSEVENT_FILENAME and CLAM_VIRUSEVENT_VIRUSNAME
environment variables
-) clamav-milter:
+ improved database update detection when not --external
-) clamscan:
+ new options --include-dir and exclude-dir
+ new option --max-dir-recursion
-) freshclam:
+ new directive LocalIPAddress
-) contrib:
+ clamdmon 1.0 - clamdwatch replacement written in C
-) 3rd party software:
+ hMailServer - open source e-mail server for Microsoft Window
+ pop3.proxy - proxy server for the POP3 protocol
+ HTTP Anti Virus Proxy
+ SmarterMail Filter - ClamAV based plugin for SmarterMail Mail Server
+ smf-clamd - small & fast virus filter for Sendmail
+ Squidclam - replacement for SquidClamAV-Redirector.py written in C
+ QtClamAVclient - remote clamd client based on the Qt Toolkit
+ qpsmtp - flexible smtpd daemon written in Perl
News:
Palo Alto, Calif. March 31st 2005 - Clam AntiVirus, the leading Open Source
antivirus toolkit, and Sensory Networks, the leading provider of hardware
acceleration for network security applications, announced a partnership
to provide hardware acceleration support for the Clam AntiVirus suite.
[...]
Support for Sensory Networks' NodalCore acceleration in ClamAV will be
available in version 0.90 of the software suite in Q3 2005. For more
information please visit:
http://www.clamav.net/partners/sensorynetworks
http://www.sensorynetworks.com/
The ClamAV project announces the opening of the official merchandise store:
http://www.cafepress.com/clamav/
A big thank you to Finndesign (http://www.finndesign.fi) which
volunteered to design the whole line of products, including:
- t-shirts (for women and men)
- golf shirt
- sweatshirt
- coffee mug
- mousepad
- stickers
- scrapbook
By purchasing our merchandise, you contribute to the development of ClamAV.
--
The ClamAV team (http://www.clamav.net/team)
0.83
----
Due to a high number of bad files produced by broken software, the MS05-002
exploit detector now only checks specific RIFF files. This version also fixes
a stability problem of clamav-milter/clamd and improves e-mail scanning.
--
The ClamAV team (http://www.clamav.net/team)
0.82
----
This release adds generic detection of MS05-002 ("Vulnerability in Cursor and
Icon Format Handling Could Allow Remote Code Execution") based exploits.
Fixes include correct attachment scanning in e-mails generated by some
Internet worms (broken in 0.81), removed false positive "Suspect.Zip"
warning on non-standard zip archives created by ICEOWS, better proxy support
in freshclam, and speed improvements.
--
The ClamAV team (http://www.clamav.net/team)
0.81
----
Scan engine improvements were made. The internal mail scanner now supports
multipart/partial messages, and support for decoding non-standard mail files
was greatly enhanced. clamav-milter by default uses libclamav and scans emails
itself without the use of clamd. libclamav can now extract RFC2397 encoded
data within HTML documents, block zip archives with modified information in
local header, and scan HQX files. PE file structure rebuilding from compressed
executables was improved.
Important note to clamdwatch users: please upgrade to the latest version
(contrib/clamdwatch) as soon as possible.
-) libclamav:
+ major improvements in the mail scanning engine:
o support for multipart/partial messages
o improved support for non-standard quoted-printable attachments
o in some situations it will try to guess a correct mode (e.g.
a good type for an incorrect content-type, a best guess for an
unknown encoding type, etc.)
o handling of RFC822 comments in the commands (e.g.: Co(foo)ntent-Type:
text/plain)
o better recovery if memory softlimit is hit
o new test code that decodes emails without parsing them first (must
be enabled manually before compilation)
+ support for extracting RFC2397 encoded data within HTML documents
+ blocking of zip archives with modified information in local header
+ improved PE structure rebuilding from compressed executables
+ improved support for zip archives
+ support for Mac's HQX file format
+ stability and (minor) security fixes
+ a lot of minor improvements, including support for new platforms
-) clamd:
+ new directive ExitOnOOM (stop the deamon when libclamav reports an out of
memory condition)
+ new directives StreamMinPort and StreamMaxPort (port range specification
for a stream mode)
+ support for passing of file descriptors
-) clamdscan:
+ added support for --move and --remove
-) clamav-milter:
+ by default uses libclamav to scan e-mails
+ new option --external (enables the use of clamd)
+ various optimisations
-) freshclam:
+ the DNS mode is now enabled by default (no need for DNSDatabaseInfo in
freshclam.conf)
+ --no-dns uses a If-Modified-Since method instead of a range GET
+ added support for AllowSupplementaryGroups
-) sigtool:
+ new options --vba and --vba-hex (extract VBA/Word6 macros and optionally
display the corresponding hex values; Word6 binary code will be
disassembled)
-) The list of third party programs with support for ClamAV is growing
rapidly. Here are the latest additions (see clamdoc.pdf for details):
+ AVScan - a libclamav based GUI a-v scanner for Unix
+ clamailfilter - a Python script that provides a-v scanning via procmailrc
+ ClamAVPlugin - A ClamAV plugin for SpamAssassin 3.x
+ ClamCour - an e-mail filter for Courier
+ clamfilter - a small, secure, and efficient content filter for Postfix
+ ClamMail - an anti-virus POP3 proxy for Windows
+ ClamShell - a Java GUI for clamscan
+ ClamTk - a perl-tk GUI for ClamAV
+ clapf - a virus scanning and antispam content filter for Postfix
+ D bindings for ClamAV - ClamAV bindings for the D programming language
+ Frox - a transparent FTP proxy
+ KMail - a fully-featured email client now supports ClamAV out of box
+ Mail Avenger - a highly-configurable SMTP server with a-v support
+ Mailnees - a mail content filter for Sendmail and Postfix
+ Maverix - anti-spam and anti-virus solution for AOLServer
+ Moodle - scan files submitted by students for viruses!
+ php-clamav - scan files from within PHP
+ pymavis - a powerful email parser, similar to the old amavis-perl
+ QClam - a simple program to plug ClamAV to a qmail mailbox
+ qmailmrtg7 - display graphs of viruses found by ClamAV
+ qSheff - an e-mail filter for qmail
+ SafeSquid - a feature rich content filtering internet proxy
+ Scrubber - a server-side daemon for filtering mail content
+ simscan - an e-mail and spam filter for qmail
+ smtpfilter - scan SMTP session for viruses
+ snort-inline - scan your network traffic for viruses with ClamAV
+ SquidClamAV Redirector - a Squid helper script which adds virus scanning
+ WRAVLib - a library for a-v integration with Mono/.NET applications
--
The ClamAV team (http://www.clamav.net/team)
0.80
----
Stable version. Please read the release notes for the candidate versions below.
--
The ClamAV team (http://www.clamav.net/team)
0.80rc4
-------
Improvements in this release include better JPEG exploit verification,
faster base64 decoding, support for GNU tar files, updated on-access scanner,
and others.
--
The ClamAV team (http://www.clamav.net/team)
0.80rc3
-------
This release candidate eliminates possible false positive alerts in UPX/FSG
compressed files and clarifies behaviour of default actions in clamd and
freshclam.
We encourage users to take advantage of our new mirror structure. In order to
download the database from the closest mirror you should configure freshclam
to use db.XY.clamav.net where XY is your country code (see
http://www.iana.org/cctld/cctld-whois.htm for the full list). Please add
the following lines to freshclam.conf:
DNSDatabaseInfo current.cvd.clamav.net
DatabaseMirror db.XY.clamav.net
DatabaseMirror database.clamav.net
DNSDatabaseInfo enables database and software version verification through
DNS TXT records, and the second database mirror acts as a fallback in case
a connection to the first mirror fails for some reason.
0.80rc2
-------
This update fixes a serious bug in e-mail scanner.
0.80rc
------
The development version of ClamAV is ready for general testing! New mechanisms
have already proved very nasty to Internet worms successfully protecting
against the new versions R, S, T, U, V and W of the infamous Mydoom worm
and detecting them as Worm.Mydoom.Gen before they were analysed and specific
signatures added by the ClamAV database maintainers. That means servers running
the new version of ClamAV have detected and blocked 100% of Mydoom attacks!
New features in this release include:
-) libclamav
+ Portable Executable analyser (CL_SCAN_PE) featuring:
o UPX decompression (all versions)
o Petite decompression (2.x)
o FSG decompression (1.3, 1.31, 1.33)
o detection of broken executables (CL_SCAN_BLOCKBROKEN)
+ new, memory efficient, pattern matching algorithm (multipattern variant
of Boyer-Moore) - it's now primary matcher and Aho-Corasick is only used
for regular expression extended signatures
+ new signature format with advanced target type and offset specification
+ support for MD5 based signatures
+ extended regular expression scanner
+ added support for MS cabinet files
+ added support for CHM files
+ added support for POSIX tar archives
+ scanning inside PowerPoint documents
+ HTML normaliser with support for decoding of MS Script Encoder code
+ great improvements in e-mail scanner (now handles even more worm tricks)
+ new method of mail files detection
+ all e-mail attachments are now scanned (previously only the first ten
attachments were scanned)
+ added support for scanning URLs in e-mails (CL_SCAN_MAILURL)
+ detection of Worm.Mydoom.M.log
+ updated API (still backward compatible but please consult clamdoc.pdf
(Section 6) and adapt your software)
-) clamd
+ new directive ScanHTML (enables HTML normalisator and ScrEnc decoder)
+ new directive ScanPE (win32 executable analyser and decompressor)
+ new directive DetectBrokenExecutables (try to detect broken executables
and mark them as Broken.Executable)
+ new directive MailFollowURLs (try to download and scan files from URLs
in mails. BE CAREFUL! DO NOT ENABLE IT ON LOADED MAIL SERVERS)
+ new directive ArchiveBlockMax (archives that exceed limits will be
marked as viruses)
+ clamav.conf was renamed clamd.conf
-) clamscan
+ mail files are scanned by default, use --no-mail to disable it
+ new option --no-html (disables HTML normalisator)
+ new option --no-pe (disables PE analyser)
+ new option --detect-broken
+ new option --block-max
+ new option --mail-follow-urls (download and scan files from URLs in mails)
-) clamdscan
+ now prints warnings if some activated command line options are only
supported by clamscan
+ added support for archive scanning in stdin mode
-) clamav-milter
+ improved template file format
+ quarantined file names now contain virus names
+ initial support for SESSION mode of clamd
-) freshclam:
+ new directive DNSDatabaseInfo that enables ultra lightweight version
verification method through DNS (using TXT records). Based on idea by
Christopher X. Candreva and enabled by default.
(see http://www.gossamer-threads.com/lists/clamav/users/11102)
+ new option --no-dns (quick option to disable DNS method without editing
freshclam.conf)
-) sigtool
+ removed ability of automatic signature generation (use MD5 sums to
create your own signatures, see signatures.pdf for details)
+ new option --md5
+ new option --html-normalise (saves HTML normalisation and decryption
results in three html files in current directory)
-) configure:
+ new option --disable-gethostbyname_r (try enabling it if clamav-milter
compilation fails)
+ new option --disable-dns (try enabling it if freshclam compilation fails)
+ extended regular expression scanner
-) documentation
+ included new Mac OS X installation instructions
+ official documentation rewritten and outdated docs removed
-) new 3rd party software with support for ClamAV:
+ OdeiaVir - an e-mail filter for qmail and Exim
+ ClamSMTP - a lightweight (written in C) and simple filter for Postfix
+ Protea AntiVirus Tools - a virus filter for Lotus Domino
+ PTSMail Utilities - an e-mail filter for Sendmail
+ mxGuard for IMail - a mail filter for Ipswitch IMail (W32)
+ Zabit - a content and attachment filter for qmail
+ BeClam - ClamAV port for BeOS
+ clamXav - a virus scanner with GUI for Mac OS X
Special thanks to aCaB for his work on UPX, FSG and Petite decompressors.
Thanks to good reaction times on new threats ClamAV was awarded as best
security tool for 2004 by Linux Journal: "...With this year's outbreak of
e-mail worms for non-Linux platforms, ClamAV has been getting quite a workout,
and Linux admins on mailing lists report that database update times are keeping
up with or beating the proprietary alternatives." Thanks!
SourceWear.com is selling some very nice t-shirts and polo shirts powered by
ClamAV. Wear them and virus writers will stay away from you :-) A quarter out
of every dollar profited from the sale of these shirts will go to the ClamAV
project. Visit http://www.sourcewear.com and click on ClamAV logo!
--
The ClamAV team (http://www.clamav.net/team)
0.75
----
This release fixes detection of e-mails generated by Worm.Mydoom.I.
Important notice for people using ClamAV 0.60:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Our logs show that there is still a small percentage of ClamAV 0.60
installations updating their database. ClamAV 0.60 was released on
July 29th, 2003 and it was the last release to use the old database
format. Starting from version 0.65, released on November 12nd, ClamAV
uses a new database format, which is compressed and digitally signed.
We have been distributing the database in both formats till now, but
we plan to drop support for ClamAV 0.60 on September 1st.
We encourage _all_ users to upgrade to the latest release available.
People running an old version of ClamAV are missing many viruses and
may experience stability problems.
On non-production systems you can try the latest development version.
The new engine not only speeds up the scanning process but also limits
memory usage by about 8 MB ! It's able to scan new formats, including
CAB, CHM, UPX, HTML (normalisation), PowerPoint macros and can detect
annoying e-mails with empty attachments generated by new Bagle variants.
--
The ClamAV team (http://www.clamav.net/team)
0.74
----
Bugfixes in this version include crashes with multipart/mixed messages
and corrupted OLE2 and Zip files. Improvements include various optimisations
of mail scanning and clamav-milter and clamdscan behaviour.
New members of our "3rd party software" list:
+ MyClamMailFilter an e-mail filter for procmail (written in C)
+ clamaktion scan files from the right-click Konqueror menu
+ QMVC Qmail Mail and Virus Control
+ pyclamav Python binding for ClamAV
+ FETCAV Front End To Clam AntiVirus based on Xdialog
+ Famuko an on-access scanner working in a userspace
+ SoftlabsAV a generic anti-virus filter for procmail
Japanese users can take an advantage of the new ClamAV related site:
http://clamav-jp.sourceforge.jp/
and join the clamav-jp-users mailing list.
--
The ClamAV team (http://www.clamav.net/team)
0.73
----
This version fixes memory management problems in the OLE2 decoder and
improves mail scanning. Because of the rapid ClamAV development the team
encourages users to help in testing new features:
http://www.clamav.net/snapshot
Thank you for using ClamAV !
--
The ClamAV team (http://www.clamav.net/team)
0.72
----
Major bugfixes in this release include crashes with corrupted BinHex messages
and some Excel documents. Protection against archive bombs (not fully
functional since 0.70) was improved and a number of other improvements were
made.
--
The ClamAV team (http://www.clamav.net/team)
0.71
----
This release fixes all bugs found in 0.70 and introduces a few new features -
the noteworthy changes include:
-) libclamav:
+ support nested OLE2 files
+ support Word6 macro code
+ ignore popular file types (media, graphics)
+ support compress.exe (SZDD) compression (test/test.msc)
+ improve virus detection in e-mails
-) clamscan:
+ automatically decide (by comparing daily.cvd version numbers) which
database directory (hardcoded or clamav.conf's one) to use
+ support compression ratio feature (--max-ratio)
+ allow regular expressions in --[in|ex]clude
+ do not overwrite old files in a quarantine directory but add a numerical
extension to new files
+ respect --tempdir in libclamav
+ fix access problem when calling external unpackers in a superuser mode
+ fix file permission corruption with --deb in a superuser mode
-) clamd
+ support log facility specification in syslog's style (LogFacility)
+ new directive LeaveTemporaryFiles (Debug no longer leaves temporary
files not removed)
-) clamav-milter:
+ include the virus name in the 550 rejection
+ support user defined template for virus notifications (--template-file)
+ sort quarantine messages by date
+ improve thread management
+ add X-Virus-Scanned and X-Infected-Received-From: headers
+ improve load balancing (when using remote servers with --server)
+ send 554 after DATA received, not 550
+ save PID (--pidfile)
-) documentation:
+ German clamdoc.pdf translation (Rupert Roesler-Schmidt and Karina
Schwarz, uplink coherent solutions, http://www.uplink.at)
+ new Japanese documentation (Masaki Ogawa)
--
The ClamAV team (http://www.clamav.net/team)
0.70
----
The two major changes in this version are new thread manager in clamd
and support for decoding MS Office VBA macros. Both of them have been
implemented by Trog. Besides, there are many improvements and bugfixes
(all listed in ChangeLog), a short summary:
-) clamd
+ new thread manager (with better SMP support)
+ on-access scanning now also available on FreeBSD (with Dazuko 2.0)
+ new directive ArchiveBlockEncrypted
+ new directive ReadTimeout (replaces ThreadTimeout)
+ handle SIGHUP (re-open logfile) and SIGUSR2 (reload database)
+ respect TCPAddr in stream scanner
-) clamav-milter:
+ TCPWrappers support
-) libclamav:
+ support MS Office documents (OLE2) and VBA macro decoding
+ support encrypted archive detection
+ new flags: CL_OLE2, CL_ENCRYPTED (see clamdoc.pdf, Section 6.1)
+ improve virus detection in big files
+ improve support for multipart, bounce and embedded RFC822 messages
+ improve RAR support
+ include backup snprintf implementation
-) clamscan:
+ new option: --block-encrypted
-) freshclam
+ new option: --pid, -p (write pid file if run as daemon)
+ handle SIGHUP (re-open logfile), SIGTERM (terminate with log message),
SIGALRM and SIGUSR1 (wake up and check mirror)
+ fix bug with -u and -c handling
-) contrib
+ windows clamd client now available with source code
-) documentation:
+ new Polish documentation on ClamAV and Samba integration
+ official documentation updated
Special thanks to Dirk Mueller <mueller*kde.org> for his code review,
many bugfixes and cleanups.
Thanks to the help of many companies (clamdoc.pdf: Section 2.10,
http://www.clamav.net/mirrors.html) we have 49 very fast and reliable
virus database mirrors in 22 regions and the number is still growing.
As of March 2004 we attempt to redirect our users to the closest pool
of mirrors by looking at their ip source address when they try to resolve
database.clamav.net. Our DNS servers can answer with a CNAME to:
db.europe.clamav.net, db.america.clamav.net, db.asia.clamav.net or
db.other.clamav.net. Our advanced push-mirroring mechanism (maintained by
Luca Gibelli) allows database maintainers to update all the mirrors in less
than one minute !
There will be no major feature enhancements in the 0.7x series. Our work
will be concentrated on a new scanning engine and preliminary heuristics -
please help us and test CVS snapshots from time to time.
We are happy to announce new programs with support for ClamAV (all of them
have been reviewed by our team - more info in the documentation and
on our website: http://www.clamav.net/download/third-party-tools):
+ ClamWin - a GUI for Windows (!)
+ KlamAV - a collection of GUI tools for using ClamAV on KDE
+ clamscan-procfilter - a Perl procmail filter
+ j-chkmail - a powerful filter for sendmail
+ qscanq - Virus Scanning for Qmail
+ clamavr - a Ruby binding for ClamAV
+ DansGuardian Anti-Virus Plugin
+ Viralator - a Perl script that virus scans http downloads
+ ClamAssassin - a filter for procmail
+ Gadoyanvirus - a filter for Qmail
+ OpenProtect - a complete e-mail protection solution
+ RevolSys SMTP kit for Postfix - an antispam/antivirus tools installation
+ POP3 Virus Scanner Daemon
+ mailman-clamav - a virus filter for Mailman
+ wbmclamav - a webmin module to manage ClamAV
+ Scan Log Analyzer
+ mailgraph - a RRDtool frontend for Postfix Statistics
+ INSERT - a security toolkit on a credit card size CD
+ Local Area Security - a Live CD Linux distribution
--
The ClamAV team (http://www.clamav.net/team)
April 17, 2004
0.68-1
------
Fixed RAR support.
0.68
----
This version fixes a crash with some RAR archives generated by the Bagle worm,
also a few important fixes have been backported from CVS.
We strongly encourage users to install the 0.70-rc version (released today).
0.67
----
This release fixes a memory management problem (platform dependent; can lead
to a DoS attack) with messages that only have attachments (reported by Oliver
Brandmueller). It also contains patches for a few problems found in 0.66 and
has better Cygwin support.
0.66
----
This version is a response to the "clamav 0.65 remote DOS exploit" information
published on popular security-related mailing lists. Unfortunately we had
not been contacted by the author before he published that and had to release
this (unplanned) package very quickly (it should be mentioned that CVS version
was not vulnerable to the exploit). Untested code has been disabled also
the Dazuko support is temporarily not available (if you really need it please
use a CVS version or wait for a next stable release). Other noteworthy changes:
-) clamd:
+ fixed database timestamp handling (and a double reload problem reported
by Alex Pleiner and Ole Stanstrup)
+ new directive: ArchiveMaxCompressionRatio
+ new command: SESSION (starts a clamd session and allows to do multiple
commands per TCP session)
+ new directives: TemporaryDirectory, LogClean (Andrey V. Malyshev)
-) clamav-milter: (Nigel Horne)
+ added support for AllowSupplementaryGroups and ThreadTimeout
+ added --quarantine-dir (thanks to Michael Dankov)
+ added --noreject (thanks to Vijay Sarvepalli)
+ added --headers (thanks Leonid Zeitlin)
+ added --sign option
-) libclamav:
+ detect Worm.SCO.A bounces (Nigel)
+ prevent buffer overflow in broken uuencoded files (Nigel)
+ scan multipart alternatives that have no boundaries (Nigel)
+ better handling of encapsulated messages (Nigel)
+ locate uuencoded viruses hidden in text portions of multipart/mixed
mime messages (Nigel)
+ initial support for BinHex (Nigel)
+ fixed a mail recursion loop (problem reported by Alex Kah and Kristof
Petr)
+ fixed bzip2 memory limit (improper call suggested by the buggy libbz2
documentation, problem reported by Tomasz Klim)
+ fixed on error descriptor leak in CVD unpacker (Thomas Lamy)
+ fixed memory leak in digital signature verification code (Thomas Lamy)
+ added maximal compression ratio limit (cl_limits->maxratio)
-) clamscan:
+ support for multiple arguments on command line (Thomas Lamy)
+ fixed buffer overflow in --move (Denis De Messemacker)
+ removed support for sendfile() under Linux
-) freshclam:
+ support for freshclam.conf (that may be optionally merged with
clamav.conf, command line options overwrite config settings)
+ work-around for potential database downgrade (subtle problem
in r-r dns handling) - reported by Daniel Mario Vega and patched
by Luca Gibelli
-) sigtool:
+ list virus names with --list-sigs (-l)
-) contrib:
+ clamdwatch (by Mike Cathey)
+ windows clamd client with drag&drop support (Nigel Horne)
-) documentation:
+ complete clamdoc.pdf French translation by Stephane Jeannenot
+ Polish how-to on ClamAV and Sendmail integration (with clamav-milter)
by Przemyslaw Holowczyc
News:
ClamAV was the first anti-virus protecting against Worm.SCO.A (aka MyDoom.A) !
The signature was published by Diego d'Ambra in the daily update 105,
26-Jan-2004 20:23 GMT and we were at least two hours faster than "big" AV
vendors:
http://sourceforge.net/mailarchive/forum.php?thread_id=3764826&forum_id=34654
http://www.pcwelt.de/news/viren_bugs/37278/4.html
clamav-devel is finally able to decode OLE2 (Microsoft Office) files and
decompress VBA streams ! The code is developed by Trog, official ClamAV
developer. Also we're testing new clamd implementation that will solve
several important problems (especially that "Time out" related). Please
help us and test the latest CVS version.
The virus database now contains more than 20.000 signatures ! On January 8,
Denis De Messemacker (who joined our team 3 months ago) added signatures for
about 7700 new viruses. Also special thanks go to Tomasz Papszun for his
hard work on daily submissions and forcing us to keep ClamAV quality on
the highest possible level.
New mirroring mechanisms. Luca Gibelli (ClamAV) and mirror administrators
(22 sites, http://www.clamav.net/mirrors.html, please see clamdoc.pdf for
a complete mirror information) are converting mirrors to new "push mirroring"
method. It uses advanced techniques to ensure all the mirrors are up to date.
More info: http://www.clamav.net/docs/mirrors
"Newsworthy Hack of Kindness" - Affero.net is featuring ClamAV in its latest
newsletter (Volume #9, January 2004: http://www.affero.net/nl/dec03.html).
Affero is a great rate-donate system and its mission is to bring a culture
of patronage to the Internet. Currently we only accept donations via Affero.
You can also help us and promote our project by adding the ClamAV logo to
your home page. Look at http://www.clamav.net/donate for more information.
We would like to thank our donors:
* Jeremy Garcia (http://www.linuxquestions.org)
* Andries Filmer (http://www.netexpo.nl)
* David Eriksson (http://www.2good.nu)
* Dynamic Network Services, Inc (http://www.dyndns.org)
* epublica
* Invisik Corporation (http://www.invisik.com)
* Keith (http://www.textpad.com)
* Explido Software USA Inc. (http://www.explido.us)
* cheahch from Singapore
* Electric Embers
* Stephane Rault
* Brad Koehn
* David Farrick
* ActiveIntra.net Inc. (http://www.activeintra.net)
* An anonymous donor from Colorado, US
--
Tomasz Kojm <tkojm*clamav.net>
February 10, 2004
0.65
----
IMPORTANT NOTE: The project has been moved into SourceForge. The only official
ClamAV's homepage is www.clamav.net (however clamav.elektrapro.
com still works). We would like to thank ElektraPro.com for
their support for the open-source community - THANKS !
ClamAV 0.65 introduces a new database container file format (called CVD) with
support for digital signatures and compression. Please remove the old
databases from your database directory before the installation. And the most
important thing: clamd stability has been greatly improved (especially under
FreeBSD) ! Also we have a new mirror infrastructure - you will find all the
details in clamdoc.pdf. If you want to become an official ClamAV mirror
(with entry in database.clamav.net) please read the clamav-mirror-howto.pdf
document and contact our administrator - Luca Gibelli <nervous*clamav.net>.
Noteworthy changes in this version:
-) clamd:
+ fixed a race condition in database reloading code (random crashes
under high load)
+ fixed a race condition with the improperly initialized session start time
(thanks to Michael Dankov)
+ fixed PidFile permissions (Magnus Ekdahl, bug reported by Tomasz Papszun)
+ fixed LogFile permissions (Magnus Ekdahl)
+ new directive ScanRAR (bacause RAR support is now disabled by default)
+ new directive VirusEvent
+ new directive FixStaleSocket (Thomas Lamy and Mark Mielke)
+ new directive TCPAddr (Bernard Quatermass, fixed by Damien Curtain)
+ new directive Debug
-) clamav-milter: (Nigel Horne <njh*clamav.net>)
+ new --force-scan flag
+ new -P and -q flags by Nicholas M. Kirsch
WARNING: clamav-milter and our mail scanner are still in high development
and may be unstable. You should always use the CVS version.
-) libclamav:
+ support for a new database container format (CVD) - compressed and
digitally signed
+ better protection against malformed zip archives (such as Mimail)
+ mail decoder fixes (thanks to Rene Bellora, Bernd Kuhls, Thomas Lamy,
Tomasz Papszun) (Nigel Horne)
+ memory leak fixes (Thomas Lamy)
+ new scan option CL_DISABLERAR (disables built-in RAR unpacker)
-) freshclam:
+ fixed --on-error-execute behaviour (David Woakes)
+ new option --user (-u) USER - run as USER instead of the default user.
Patch by Damien Curtain.
+ rewritten to use database.clamav.net and CVD
-) documentation:
+ new Spanish documentation on ClamAV and Sendmail integration by
Erick Ivaan Lopez Carreon
+ included clamdoc.pdf Turkish translation by yavuz kaya and <20>brahim erken
+ included clamav-mirror-howto.pdf by Luca Gibelli
+ included clamd+daemontools HOWTO by Jesse D. Guardiani
+ included signatures.pdf
+ man pages: updated
+ clamdoc.pdf: rewritten
New members of our list of ClamAV certified software (see clamdoc.pdf for
details):
+ cgpav
+ smtp-vilter
+ IVS Milter
+ scanexi
+ Mail::ClamAV
+ OpenAntiVirus samba-vscan
+ Sylpheed Claws
+ nclamd
Thanks to Mia Kalenius and Sergei Pronin we have a new official logo !
Thank you for using ClamAV !
--
Tomasz Kojm <tkojm*clamav.net>
November 12, 2003
0.60
----
Hello again...
This is a new, (very?) stable release of Clam AntiVirus. 0.60 was developed
and stabilized for over seven months and many people had contributed to the
final release. This version introduces many enhancements and a new program:
clamav-milter written by ClamAV developer Nigel Horne. This is a mail scanner
for Sendmail/milter written entirely in C, which uses clamd for virus scanning.
Clamav-milter and clamd duet is a powerful solution for systems where high
performance is required. Please check clamdoc for more detail.
Many people get confused with ClamAV database status because of
the OpenAntiVirus update information at:
http://openantivirus.org/latest.php
(last update at 17 October, 2002). The ClamAV virus database contains
the OAV database (with some signatures fixed or removed) but we
develop it independently of the OAV project. Our database is updated
frequently (on average 4-5 times a week). You can help (or join) us -
will find some basic but useful instructions at
http://clamav.elektrapro.com/doc/signatures.pdf
News from ClamAV world:
-) New email address for virus submitting: virus@clamav.elektrapro.com
You don't need to encrypt a virus sample, but if your system doesn't allow
you to send infected files just put it into an encrypted zip archive
(password: virus)
Special thanks to Nicholas Chua, Diego D'Ambra, Hrvoje Habjanic, Nigel Kukard
and Chris van Meerendonk for a big number of samples submitted.
-) New mailing list: virusdb@clamav.elektrapro.com
After each update an email with subject "[clamav-virusdb] Update" and a list
of viruses added is sent to it. You can set up a procmail rule for freshclam
to react on such a mails (and update the database just after an update).
-) New official mirrors:
+ clamav.ozforces.com: database mirror updated manually (thanks to
Andrew <andrew@ozforces.com>)
+ clamav.essentkabel.com: full (automatic) mirror of clamav.elektrapro.com
(thanks to Chris van Meerendonk <cvm@castel.nl>)
+ clamav.linux-sxs.org: database mirror - rsync from clamav.ozforces.com
(thanks to Douglas J Hunley <doug@hunley.homeip.net>)
Freshclam will automatically use them when the main server is not
accessible.
-) Official port in FreeBSD available ! (maintained by Masahiro Teramoto
<markun@onohara.to>)
-) Unofficial port for OpenBSD is available at:
http://www.activeintra.net/openbsd/article.php?id=5
(maintained by Flinn Mueller <flinn@activeintra.net>)
-) there are many new programs that use ClamAV, eg. mod_clamav (Apache
virus scanning filter), clamdmail or Sagator. You will find more
info in clamdoc.
Changes:
-) libclamav:
+ fixed buffer overflow in unrarlib (patch by Robbert Kouprie
<robbert@exx.nl>)
+ various mbox code updates (fixed memory leak; added support for decoding
viruses sent in message bodies, detection of viruses that put their
payloads after the end of message marker (thanks to Stephen White
<stephen@earth.li> for the bug report and useful CGI tools);
+ zziplib updated to 0.10.81 (some problems with older version were reported
by Martin Schitter)
+ direct scanning of mbox/maildir files (new directive CL_MAIL)
+ file scanner optimization (patch by Hendrik Muhs
<Hendrik.Muhs@student.uni-magdeburg.de>)
+ bzip2 support
+ faster detection of malformed Zip archives (eg. 'Zip of Death'), they are
reported as a viruses
+ fixed strcasecmp() compile problem in zziplib on Free/NetBSD and others
-) clamd:
+ fixed descriptor leak in directory scanner - it was causing random
clamd crashes and locks, especially on highly loaded servers. Reported
by Kristof Petr <Kristof.P@fce.vutbr.cz>.
+ fixed crash with archive scanning on BSD (increased thread stack size)
(Nigel Horne)
+ fixed CONTSCAN command (used by clamdscan) - it had archive support
disabled (hardcoded)
+ fixed SelfCheck option (there was a logic bug, and the option was
disabled) it now checks a databases time stamps and reloads them
if needed.
+ fixed possible writing to undefined descriptors (bug found by
Brian May <bam@debian.org>)
+ new STREAM command (scanning data on socket) and directives:
StreamSaveToDisk (save stream to disk to allow scanning within archives),
StreamMaxLength. This option allows scanning data on socket (might be
sent from another host), currently only clamav-milter uses this.
+ new ScanMail directive for scanning into mbox/Maildir files
+ new directive: ArchiveLimitMemoryUsage (limit memory usage with bzip2)
+ new directive: AllowSupplementaryGroups (feature requested by Exiscan
users)
+ syslog support (LogSyslog) (patch by Hrvoje Habjanic
<hrvoje.habjanic@zg.hinet.hr>)
+ fixed parser segfault with extra space between option and argument
in config file (Magnus Ekdahl <magnus@debian.org>)
-) clamscan:
+ fixed --remove option (didn't work when the file was scanned with an
internal unpacker) (patch by Damien Curtain <damien@pagefault.org>)
+ --move option for moving infected files into a specified directory
(by Damien Curtain <damien@pagefault.org>)
+ --mbox enables a direct support for mbox files
(ex. clamscan --mbox /var/spool/mail)
+ fixed --log (-l) option
+ fixed -i option (patch by Magnus Ekdahl <magnus@debian.org>)
+ enabled default archive limits (max-files = 500, max-size = 10M,
max-recursion = 5)
+ use arj instead of non-free unarj (patch by Magnus Ekdahl)
+ use unzoo instead of non-free zoo (patch by Magnus Ekdahl)
+ removed thread support
freshclam:
+ mirror support (implemented by Damien Curtain <damien@pagefault.org>)
+ --proxy-user: proxy authorization support (implemented by Gernot Tenchio
<g.tenchio@telco-tech.de>)
+ new options --on-error-execute, --on-update-execute
(ex. freshclam -d -c 6 --on-error-execute "sendsms 23332243 Can't
update virus database"). Idea by Douglas J Hunley <doug@hunley.homeip.net>
configure:
+ --disable-cr (don't link with C reentrant library (needed on some newer
versions of OpenBSD))
-) Enhanced AIX (thanks to Mike Loewen <mloewen@sturgeon.cac.psu.edu>) and
Tru64 support (thanks to Christophe Varoqui <ext.devoteam.varoqui@sncf.fr>)
-) documentation:
+ included how-to in Portugese by Alexandre de Jesus Marcolino
+ clamdoc.pdf and system manual updates
Many thanks to Luca 'NERvOus' Gibelli from ElektraPro for his support,
to Ken McKittrick from USA DataNet for a fully accessible FreeBSD box and
to mailing list subscribers for a constructive discussions.
--
Tomasz Kojm
June 21, 2003
0.54
----
Many major changes this time...
-) libclamav:
+ fixed segfault with some strange zip archives (there is a bug in zziplib,
libclamav contains a work around for it) (the problem was reported by
Oliver Paukstadt <pstadt@stud.fh-heilbronn.de>)
+ engine improvements (better support for a detection of new viruses,
limited memory usage (consumes ~ 5 Mb now))
+ mbox code updated and moved into the library: fixed core dump when an
embedded message includes a mime header with the line Content-Type:
without specifying the type of content, fixed (theoretical) memory leak,
support for multipart/report messages, fixed bug causing some formats to
fail to scan) (Nigel)
-) clamd:
+ new commands: CONTSCAN (it doesn't stop scanning even when virus is
found), VERSION
+ disable logging of a unnecessary time stamps with LogTime when
LogVerbose isn't used (patch by Ed Phillips <ed@UDel.Edu>)
-) freshclam:
+ "Cache-Control: no-cache" enabled by default
+ Cygwin support fix
-) clamdscan:
+ initial version
-) all tools:
+ removed huge printf() in help() (there was a buffer overflow problem with
--help option under Windows and SCO Unix (reported by Wojciech Noworyta
<wnow@konarski.edu.pl> and Nigel respectively)
-) configure:
+ allow configuration of the clamav user and group with --with-user and
--with-group (patch by Patrick Bihan-Faou <patrick@mindstep.com>)
+ --enable-id-check - it uses the check procedure from Jason Englander
<jason@englanders.cc>, currently it will fail on systems with getent
which doesn't detect clamav group.
+ do not overwrite the existing config file
There are initial packages for Windows available at:
http://clamav.elektrapro.com/binary
--tk
0.53
----
This release has removed the limit for a file name length in clamscan. Some
viruses (eg. W32/Yaha.E) are using very long file names, and they were
ignored in mbox mode. Users of AMaViS-ng and other wrappers were not
vulnerable to this problem, because that programs don't use original
attachement file names.
-) clamscan:
+ removed limit for a file name length (thanks to Odhiambo Washington
<wash@wananchi.com> for the test files and extensive mbox testing)
+ mbox: adapted to the new changes, enabled thread support (Nigel),
re-enabled temporary directory removing.
0.52
----
This version contains a portability fixes - it should compile on OpenBSD,
MacOSX and NetBSD (support for them was broken in 0.51).
-) clamd: various fixes:
+ drop supplementary groups (suggested by Enrico Scholz
<enrico.scholz@informatik.tu-chemnitz.de>) (this has been implemented
in freshclam, too)
+ work-around for the segmentation fault at QUIT under FreeBSD
+ check timeouts when waiting for threads in RELOAD mode
+ SelfCheck - internal integrity check (by default every 1 hour)
+ fixed problem with directory scanning on non typical file systems
(bug reported by Jason Englander <jason@englanders.cc>)
+ clamd is a system command (clamd.1 -> clamd.8, /usr/local/bin ->
/usr/local/sbin) (Magnus Ekdahl)
-) clamscan:
+ mbox code updates (Nigel Horne) - it fixes some problems on *BSD
systems (see mailing lists archives for the details)
+ enable core dumping (Nigel Horne) [ with --enable-debug ]
-) freshclam:
+ applied http-proxy patch from http://bugs.debian.org/clamav (by
Martin Lesser <admin-debian@bettercom.de>)
+ when configured with --disable-cache, freshclam forces 'no-cache'
option in proxy servers (patch by Ant La Porte <ant@dvere.net>)
-) HPUX (10.20/11.0 tested) support (thanks to Joe Oaks <joe.oaks@hp.com>)
-) fixed support for SCO Unix and BeOS (Nigel Horne)
-) support/mboxscan: new version with SpamAssassin support (Nigel Horne)
-) re-included TrashScan 0.08 (by Trashware <trashware@gmx.de>) - the security
issue has been fixed.
-) included "Installing qmail-scanner, Clam Antivirus and SpamAssassin under
FreeBSD" how-to by Paul Hoadley and Eric Parsonage
0.51
----
OAV database is up to date ! There was a problem with signature parsing,
because some hex strings were upper case. Anyway, I still recommend you
freshclam for a database updating.
-) support for the genuine OAV database
-) limited memory usage (at the cost of speed, increase CL_MIN_LENGTH in
libclamav/clamav.h to make it faster, it's safe to set it on 3-4 for
the OAV database)
-) fixed compile problem on TurboLinux 6.5 (probably others, too), the bug
was reported by Henk Kuipers <henk@opensourcesolutions.nl>.
-) clamd: fixed THREXIT (thanks to Piotr Gackiewicz <gacek@intertele.pl>)
-) clamd: fixed serious bug with thread argument type
-) clamscan: mbox: don't scan empty attachments (Nigel Horne)
-) configure: --with-db1, --with-db2 (suggested by Magnus Ekdahl)
0.50
----
Here it is...
Clam AntiVirus 0.50 contains an anti-virus library - libclamav, a fully
multi-threaded daemon clamd(1) and a quite long list of changes. The
documentation was rewritten and you _should_ review it. By courtesy of
NERvOus <nervous@nervous.it> and ElektraPro, there are three mailing lists
available - you can subscribe via www at http://clamav.elektrapro.com/ml.
Please check the manual for more information.
New software:
-) libclamav with RAR, Zip and Gzip support built-in. The library is thread
safe and should be very secure, also. It uses UniquE RAR File
Library by Christian Scheurer and Johannes Winkelmann (RAR 2.0 support only)
and zziplib library by Guido Draheim and Tomi Ollila. Both of them are
included and slightly modified in the clamav sources. You need the zlib
library for the Zip/Gzip support, though. The API is described with
examples in the clamdoc.
-) clamd: a modern anti-virus daemon. It uses configuration file clamav.conf
described in the clamav.conf(5) manual. The program was written with
security as a goal.
-) clamuko: on-access scanning under Linux. It utilizes Dazuko kernel module
(GPL, http://dazuko.org) and is clamd-based.
New features / improvements:
-) enhanced scanner engine (better detection of some complex polymorphic
viruses)
-) clamscan: Nigel Horne <njh@bandsman.co.uk> has added the ability to scan
mail attachments in a filter. For example:
$ clamscan -i --mbox - < /var/spool/mail/john
/tmp/aa6b9fc06bc477ae/setup.exe: Worm/Klez.H FOUND
Nigel is the author of the whole mbox code in clamscan. Currently it only
works in a filter mode, but there are plans to move the code into the
libclamav and allow clamd using it. Please check support/mboxscan, also.
-) clamscan: support for including and excluding multiple patterns with
--include and --exclude (patch by Alejandro Dubrovsky
<s328940@student.uq.edu.au>).
Example: clamscan --include .exe --include .obj --include .scr /mnt/windows
-) clamscan: don't scan /proc files (Linux, st_dev comparing). No more
/proc/kcore related mails :))
-) clamscan: use libclamav's archive support by default (it's enabled by default
and may be disabled with --disable-archive) and switch to the external
unpackers (if specified) in the case of libclamav archive code error.
-) freshclam: proxy support (via $http_proxy variable and --http-proxy).
I started implementing proxy support some time ago, but never finished.
Nigel Horne did the great job and has finished the proxy support !
-) freshclam: --daemon-notify. freshclam will send the RELOAD command to the
daemon after database update (supports both tcp and local sockets, it reads
clamav.conf to determine the socket type).
-) freshclam: support for viruses.db2
Bug fixes:
-) freshclam: log 'Database updated' message (thanks to Jeffrey Moskot
<jef@math.miami.edu> for the bug report). It now prints a number
of signatures in a database, also.
-) clamscan: fixed compile problem on Solaris 8 and some other systems -
#include <signal.h> lack in others.c (thanks Mike Loewen
<mloewen@sturgeon.cac.psu.edu> for the bug report)
Documentation:
-) included Japanese documentation by Masaki Ogawa <proc@mac.com>
-) updated Spanish "Sendmail + Amavis + ClamAv - Como" by Erick I. Lopez
Carreon <elopezc@technitrade.com>
-) rewritten clamdoc, included clamdoc-html, removed PostScript version (.ps)
-) Clam-Mutant ;) logo update by Michal Hajduczenia <michalis@mat.uni.torun.pl>
-) new man pages: clamd(1), clamav.conf(5); others updated
!!!
Please don't use the oav-update script with this version. It doesn't
update viruses.db2 and supports OpenAntiVirus.org site only (the last
update of the OAV database was 1 July !). Nicholas Chua <nicholas@ncmbox.net>
has generated over 200 new signatures, ClamAV's database is also frequently
updated (expecially when new wild virus/worm appears, eg. W32/BugBear.A).
This software is still in developement (new software == new bugs), however
clamscan should be very stable. You shouldn't use clamd/clamuko (well, clamd is
stable, clamuko isn't) on production systems, yet. Please wait for 0.51 at
least ;). ClamAV 0.50 was tested on Linux and Solaris and should work fine.
There is a problem with clamd on FreeBSD (tested on my FreeBSD 5.0-CURRENT) -
the daemon crashes with Zip/Gzip files (disabling ScanArchive should help).
Enjoy !
--
Tomasz Kojm
October 5, 2002
0.24
----
-) fixed threads deadlock in a critical error situation (bug found by David
Sanchez <dsanchez@veloxia.com>)
-) fixed sigtool bug (negative seeking)
-) fixed potential clamscan segfault in the case of memory allocation error
-) unpacker execution error is no longer treated as critical - a few programs
(eg. Qmail-Scanner, TrashScan) have clamscan command hardcoded with all
archive options turned on. Now, if unpacker can't be executed, raw file is
scanned and scan process is continued.
-) reverted to pthread.h detection
-) TrashScan 0.07 (Trashware <trashware@gmx.net>)
-) --exclude (regular expressions are not supported !)
[ex: clamscan --exclude="/proc/kcore" /], but please use it with care.
-) included html documentation
IMPORTANT NOTE:
~~~~~~~~~~~~~~~
You will probably have a problem with a default Qmail-Scanner (1.13 or newer)
installation. You need to increase qmail-smtpd softlimit or disable it. You
can force clamscan to use only half of the memory which it uses by default, too.
Please change the following line in the clamscan/matcher.h file:
#define MIN_LENGTH 5
to:
#define MIN_LENGTH 3
and recompile the program. Unhappily, scanning may be a little slower in some
cases, but it shouldn't be significant. Then you can safely set the qmail
softlimit to 8 MB. I want to thank Doug Monroe <doug@planetconnect.com> for
his contribution in the problem analysis.
---
New ClamAV version is in a heavy development. It has currently built-in
support for RAR, Zip, Gzip and tar. The daemon will support only built-in
compression/archive support. Snapshot will be available for a few days.
0.23
----
-) fixed compile problem on FreeBSD (thanks to Wieslaw Glod <wkg@x2.pl> and
Ken McKittrick <klmac@usadatanet.com>)
-) clamscan reads all .db files from data directory, so you can put your
own databases there and they won't be overwrited by the updaters. viruses.db
is still the main database file (if --database isn't used).
-) --deb (debian binary packages scanning) by Magnus Ekdahl <magnus@debian.org>
-) --remove option, but be careful with it !
-) new clam logo ;) (GPL) by Michal Hajduczenia <michalis@mat.uni.torun.pl>.
-) TrashScan 0.06 (by Trashware <trashware@gmx.net>) - a script for scanning
mail with procmail. I recommend it. (support/trashscan)
-) documentation updates
0.30 release will contain a daemon and an anti-virus library (with simple API),
so you can use it directly in your projects. I want to build in zip and rar
support, also.
There are binary packages for AIX available. Please check the documentation.
0.22
----
This release fixes bug with scanning archives in unaccessible directories with
*superuser* priviledges (after dropping priviledges scanner wasn't able to
access the archive, although the same archive was accessible), thanks
for Sergei Pronin <sp@finndesign.fi> for the problem description. Now all
archives unaccessible directly by the clamav user are copied (with a respect to
--max-space) to the temporary directory. All old filesystem tricks were removed.
Other fixes / improvements:
-) better error handling, new error codes
-) improved -i (--infected) option
-) removed --strange-unzip option
-) removed eicar test files and logos from the documentation due to the GPL
(thanks for Magnus Ekdahl <magnus@debian.org>), ClamAV-Test-Signature is
used instead
-) removed Qmail-Scanner patch, ClamAV is supported by Q-S 1.13 (thanks guys!)
-) code cleanups
0.21 Release
------------
It fixes following problems:
-) database downloading in freshclam/0.20
-) malformed amavis-perl patch from 0.20
-) clamscan problems with some unzip versions, please try --strange-unzip
option
ClamAV 0.21 source package contains initial support for NetBSD
(thanks to Marc Baudoin <babafou@babafou.eu.org>, Jean-Edouard BABIN
<Jeb@jeb.com.fr>), better support for Mac OS X (Masaki Ogawa <proc@mac.com>),
and clamdoc documentation corrected by Dennis Leeuw <dleeuw@made-it.com>.
0.20 Release
------------
The most important change in this release is a new, linear pattern matching
algorithm. You will find more informations about it in clamscan/matcher.c -
in the sources and in clamdoc. Summary (since 0.15):
New features:
-) fast pattern matching algorithm
-) sigtool utility, check `man sigtool` and clamdoc
-) Linux: threads autodetection on various architectures
(Magnus Ekdahl <magnus@debian.org>)
-) -i, --infected: clamscan prints only infected files
-) 'Data scanned' in summary, size in megabytes with 16 Kb precision
-) configure: --with-dbdir sets the database location
-) support/sigmake shell script by Dennis Leeuw <leeuw@stone-it.com>
-) Spanish "Sendmail+Amavis+ClamAv installation how-to" by
Erick I. Lopez Carreon <elopezc@technitrade.com>
Updates:
-) "Debian GNU/Linux Mail Server v. 0.2.0" by Dennis Leeuw <leeuw@stone-it.com>
-) qmail-scanner patch from Kazuhiko <kazuhiko@fdiary.net>
-) general documentation cleanups / updates
-) freshclam / Internet database location
Fixes:
-) threads autodetection on not-x86 Linux systems
-) gcc 3.x support (David Ford <david+cert@blue-labs.org>)
-) data type fix on Mac OS X (Peter N Lewis <peter@stairways.com.au>)
-) removed -w, --whole-file, now clamscan scans whole files by default
-w is still supported by internal getopt(), because it is used in
various patches
-) removed --one-virus, still supported by getopt(); removed 'Found viruses'
from summary, clamscan stops file scanning after first virus
-) fixed old problem with scanning stdin
-) removed amavisd-patch - strange problems have been reported
OpenAntiVirus Update is a great tool written by Matthew A. Grant
<grantma@anathoth.gen.nz> and it will be the primary updater for ClamAV
in the near future. In contrast to freshclam it has proxy support and many
specific features. Please check clamdoc for more informations and how to
obtain it.
0.15 Notes
----------
This version contains minor bugfixes only, such as:
-) multiple fixes in freshclam (it has problems, when one of the
hosts wasn't accessible), there were logic flaws in the code
-) fixed problem with password protected archives (unpackers were waiting
for password)
New features:
-) OpenBSD support (thanks to Kamil Andrusz <wizz@mniam.net>)
-) added support for amavisd, qmail-scanner (see ./support)
There were no major bugs and I was very busy, that's why new version is
released just today. In the next 2 months, clamav development will be much
faster. Here are some of my plans:
~ 0.20 : New pattern-matching algorithm
~ 0.30 : clamlib; clamscan and the daemon based on it
There is a new homepage:
http://clamav.elektrapro.com
Thanks to ElektraPro.com for sponsoring this site (it's very fast).
Thanks to NERvOus <nervous@nervous.it>.
If you are interested in current development versions, please check
snapshots link.
Resource usage limits in 0.14
-----------------------------
Two new features: --max-files, --max-space have been implemented. If you have
enabled one of this options, clamscan monitors resource usage (number of
created files and used space) and stops extractor when it has exceeded
the limit. You should use these options to protect your machine against
Denial of Service attacks. In the near future --max-levels (limit for
recursive archives extracting) and --max-time (spent on checking/extracting
files) will be implemented.
FreeBSD: AMaViS compile problems
--------------------------------
Please check FAQ.
!!! Strange signatures in VirusSignatures-2002.04.15.10.51.zip !!!
------------------------------------------------------------------
Last version of signatures was ~90 kb, this version is ~474 kb.
But I don't understand, why some signatures are mega-huge. When I decoded
them, they looked like regular files. In CA they were removed from the
database and I probably add them later, in normal sizes.
Installation :
--------------
Please view documentation in ./docs. There are several formats - pdf, ps
and plain latex, if you want to compile it yourself.
You need GNU make (on Solaris you should have gmake).
It was tested only with gcc 2.9x compilers.
Description
Languages
C
80.4%
C++
9.1%
Rust
3.6%
Python
3%
CMake
2.3%
Other
1.4%